guard = $guard; } #[Get('two-factor', name: 'two-factor.login')] public function create(TwoFactorLoginRequest $request): \Inertia\Response { if (! $request->hasChallengedUser()) { throw new HttpResponseException(redirect()->route('login')); } return Inertia::render('auth/two-factor'); } #[Post('two-factor', name: 'two-factor.store')] public function store(TwoFactorLoginRequest $request): TwoFactorLoginResponse|Response { /** @var User $user */ $user = $request->challengedUser(); if ($code = $request->validRecoveryCode()) { $user->replaceRecoveryCode($code); event(new RecoveryCodeReplaced($user, $code)); } elseif (! $request->hasValidCode()) { event(new TwoFactorAuthenticationFailed($user)); return app(FailedTwoFactorLoginResponse::class)->toResponse($request); } event(new ValidTwoFactorAuthenticationCodeProvided($user)); $this->guard->login($user, $request->remember()); $request->session()->regenerate(); return redirect()->intended(route('servers', absolute: false)); } }