authenticate(); $request->session()->regenerate(); return redirect()->intended(route(config('uwil-backend.routes.name') . 'dashboard.index', absolute: false)); } /** * Destroy an authenticated session. */ public function logout(Request $request): RedirectResponse { Auth::guard('backend')->logout(); $request->session()->invalidate(); $request->session()->regenerateToken(); return to_route(config('uwil-backend.routes.name') . 'login'); } /** * Display the forgotten password view. */ public function forgotPassword(): Response { return Inertia::render('back/Pages/Auth/ForgotPassword'); } /** * Handle an incoming forgotten password request. */ public function postForgotPassword(ForgotPasswordRequest $request): RedirectResponse { $status = Password::broker('backend')->sendResetLink( $request->validated() ); if ($status !== Password::RESET_LINK_SENT) { Log::warning('Password reset link not sent', [ 'status' => $status, 'email' => $request->input('email'), ]); } return to_route(config('uwil-backend.routes.name') . 'login'); } /** * Send a reset password link to the user. */ public function sendResetPasswordLink(User $user): RedirectResponse { $status = Password::broker('backend')->sendResetLink(['email' => $user->email]); return $status === Password::RESET_LINK_SENT ? back() : back()->withErrors(['email' => trans('auth.throttled')]); } /** * Display the view. */ public function resetPassword(string $token): Response { return Inertia::render('back/Pages/Auth/ResetPassword', [ 'token' => $token, 'email' => request()->query('email', ''), ]); } /** * Handle an incoming resetting password request. */ public function postResetPassword(ResetPasswordRequest $request): RedirectResponse { $status = Password::broker('backend')->reset( $request->validated(), function (User $user, string $password): void { $user->setRememberToken(Str::random(60)); $user->save(); UserPassword::updateOrCreate( ['user_id' => $user->getKey()], ['password' => Hash::make($password)], ); event(new PasswordReset($user)); Mail::send(new ResetPassword($user)); } ); return $status === Password::PASSWORD_RESET ? to_route(config('uwil-backend.routes.name') . 'login') : back()->withErrors(['email' => trans('auth.token')]); } }