check()) { return $this->redirect('/'); } return $this->redirect(auth()->beginLogin()); } public function callback(): Response { $request = Request::capture(); $error = (string) $request->input('error', ''); if ($error !== '') { $desc = (string) $request->input('error_description', $error); return new Response('Authentication error: ' . e($desc), 400); } $code = (string) $request->input('code', ''); $state = (string) $request->input('state', ''); if ($code === '' || $state === '') { return $this->redirect('/login'); } try { auth()->handleCallback($code, $state); } catch (\Throwable $e) { return new Response('Login failed: ' . e($e->getMessage()), 400); } return $this->redirect('/'); } public function logout(): Response { return $this->redirect(auth()->logout()); } }