route('dashboard'); } // If database is empty, allow creating the first admin $hasUsers = User::exists(); return view('auth.login', compact('hasUsers')); } /** * Handle authentication attempt. */ public function login(Request $request) { $request->validate([ 'email' => 'required|string', 'password' => 'required|string', ]); if (Auth::attempt($request->only('email', 'password'), $request->filled('remember'))) { $request->session()->regenerate(); return redirect()->intended(route('dashboard')); } return back()->withErrors([ 'email' => 'Thông tin đăng nhập không chính xác.', ])->onlyInput('email'); } /** * Handle first-time registration of the administrator. */ public function registerAdmin(Request $request) { if (User::exists()) { return redirect()->route('login')->withErrors(['register' => 'Tài khoản quản trị đã tồn tại.']); } $request->validate([ 'name' => 'required|string|max:255', 'email' => 'required|string|max:255|unique:users,email', 'password' => 'required|string|min:8|confirmed', ]); $user = User::create([ 'name' => $request->name, 'email' => $request->email, 'password' => Hash::make($request->password), ]); Auth::login($user); return redirect()->route('dashboard')->with('success', 'Đăng ký tài khoản quản trị thành công!'); } /** * Log the user out. */ public function logout(Request $request) { Auth::logout(); $request->session()->invalidate(); $request->session()->regenerateToken(); return redirect()->route('login'); } }