🚨 fix(auth): Tingkatkan pesan error pada proses login
Meningkatkan user experience dengan memberikan pesan error yang lebih spesifik pada proses login: - Menambahkan logika untuk membedakan error "password salah" dan "user tidak ditemukan" - Menggunakan FILTER_VALIDATE_EMAIL untuk mendeteksi apakah input adalah email atau NIK - Mengganti pesan error generik "Email/NIK atau password tidak sesuai" menjadi pesan yang lebih spesifik - Menambahkan validasi untuk mengecek keberadaan user sebelum memberikan pesan error - Memperbaiki struktur pesan error untuk menampilkan error pada field yang tepat (login atau password) - Meningkatkan keamanan dengan tetap mempertahankan rate limiting pada percobaan login yang gagal - Memastikan backward compatibility dengan sistem error handling yang sudah ada
This commit is contained in:
@@ -57,9 +57,17 @@
|
||||
} else {
|
||||
if (!Auth::attempt($authData, $this->boolean('remember'))) {
|
||||
RateLimiter::hit($this->throttleKey());
|
||||
throw ValidationException::withMessages([
|
||||
'login' => 'Email/NIK atau password tidak sesuai.'
|
||||
]);
|
||||
$loginField = filter_var($credentials['login'], FILTER_VALIDATE_EMAIL) ? 'email' : 'nik';
|
||||
$user = User::where($loginField, $credentials['login'])->first();
|
||||
|
||||
$messages = [];
|
||||
if ($user) {
|
||||
$messages['password'] = 'Password tidak sesuai';
|
||||
} else {
|
||||
$messages['login'] = 'Email/NIK tidak ditemukan';
|
||||
}
|
||||
|
||||
throw ValidationException::withMessages($messages);
|
||||
}
|
||||
|
||||
RateLimiter::clear($this->throttleKey());
|
||||
@@ -130,9 +138,17 @@
|
||||
|
||||
// Authentication failed
|
||||
RateLimiter::hit($this->throttleKey());
|
||||
throw ValidationException::withMessages([
|
||||
'login' => 'Email/NIK atau password tidak sesuai.',
|
||||
]);
|
||||
$loginField = filter_var($credentials['login'], FILTER_VALIDATE_EMAIL) ? 'email' : 'nik';
|
||||
$user = User::where($loginField, $credentials['login'])->first();
|
||||
|
||||
$messages = [];
|
||||
if ($user) {
|
||||
$messages['password'] = 'Password tidak sesuai';
|
||||
} else {
|
||||
$messages['login'] = 'Email/NIK tidak ditemukan';
|
||||
}
|
||||
|
||||
throw ValidationException::withMessages($messages);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user