session = $session; $this->client = $client; $this->hydra = $hydra; } #[Route('/', name: 'app_home')] public function home(Request $request): RedirectResponse { return $this->hydra->handleLoginRequest($request); } /* * Route de Healthcheck (notament pour kubernetes) */ #[Route('/health', name: 'health')] public function health(Request $request): Response { return new Response('healthy', 200); } #[Route('/connect/login-accept', name: 'app_login_accept', methods: ['GET'])] public function loginAccept(Request $request): RedirectResponse { $user = $this->getUser(); if (!$user instanceof User) { throw new AccessDeniedException(); } $challenge = $this->session->get('challenge'); if (!$challenge) { return new RedirectResponse($this->getParameter('issuer_url')); } $loginAcceptRes = $this->client->acceptLoginRequest($challenge, [ 'subject' => $user->getLogin(), 'remember' => true, ])->toArray(); return new RedirectResponse($loginAcceptRes['redirect_to']); } #[Route('/connect/consent', name: 'app_consent')] public function consent(Request $request): RedirectResponse { return $this->hydra->handleConsentRequest($request); } }