From 9de4993af644c154fc27607209128de0b148cbb0 Mon Sep 17 00:00:00 2001 From: LailaWulandarii Date: Sat, 27 Dec 2025 02:31:10 +0700 Subject: [PATCH] add logic in auth controller and login view for authentication --- app/Http/Controllers/admin/AuthController.php | 70 +++++++++++++++++++ resources/views/admin/login.blade.php | 42 +++++++---- 2 files changed, 100 insertions(+), 12 deletions(-) create mode 100644 app/Http/Controllers/admin/AuthController.php diff --git a/app/Http/Controllers/admin/AuthController.php b/app/Http/Controllers/admin/AuthController.php new file mode 100644 index 0000000..780a348 --- /dev/null +++ b/app/Http/Controllers/admin/AuthController.php @@ -0,0 +1,70 @@ +validate([ + 'username' => ['required'], + 'password' => ['required'], + ]); + + // 1. CEK USERNAME DULU + // Cari user berdasarkan username yang diinput + $user = User::where('username', $request->username)->first(); + + // Kalau user GAK KETEMU (Database kosong atau salah ketik) + if (!$user) { + return back()->withErrors([ + 'username' => 'Username tidak ditemukan.', // Error nempel di kolom username + ])->onlyInput('username'); + } + + // 2. CEK PASSWORD + // Kalau user ketemu, kita cek passwordnya cocok gak sama yang di database + if (!Hash::check($request->password, $user->password)) { + return back()->withErrors([ + 'password' => 'Password salah, coba ingat-ingat lagi.', // Error nempel di kolom password + ])->onlyInput('username'); + } + + // 3. KALAU LOLOS DUA-DUANYA -> LOGIN + Auth::login($user); + $request->session()->regenerate(); + + // Redirect sesuai role + $role = $user->role ?? 'admin'; + if ($role === 'pemilik') { + return redirect()->intended(route('admin.beranda.pemilik')); + } + + return redirect()->intended(route('admin.beranda')); + } + + // 3. Logout + public function logout(Request $request) + { + Auth::logout(); // Hapus sesi login + + $request->session()->invalidate(); // Matikan session + $request->session()->regenerateToken(); // Regenerasi token keamanan + + // Redirect ke halaman login setelah logout + return redirect()->route('login'); + } +} diff --git a/resources/views/admin/login.blade.php b/resources/views/admin/login.blade.php index 949ed56..e6b75c3 100644 --- a/resources/views/admin/login.blade.php +++ b/resources/views/admin/login.blade.php @@ -16,25 +16,43 @@