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 @@
-