getBookingDto($request, BookingService::BOOKING_CREATE_KEY); // If authenticated and in booking flow, proceed to Step 1 if (null !== $this->getUser() && true === $isBookingFlow) { return $this->redirectToRoute('app_booking_create_step_1'); } // If authenticated but not in booking flow, go to personal data if (null !== $this->getUser()) { return $this->redirectToRoute('app_personal_data'); } $error = $authenticationUtils->getLastAuthenticationError(); $lastUsername = $authenticationUtils->getLastUsername(); // flag this request in the session as external OAuth2 request if // applicable to immediately logout the current user after successful // authentication (see App\EventListener\AuthorizationCodeListener). $session = $request->getSession(); $targetPath = $session->get('_security.main.target_path'); if (null !== $targetPath && str_contains($targetPath, '/authorize')) { $session->set('_oauth2', true); } // For booking flow, set target path to Step 1 (after successful auth, redirect there) if (true === $isBookingFlow) { $session->set('_security.main.target_path', $this->generateUrl('app_booking_create_step_1')); } // Render booking login template if in booking flow, otherwise standard login $template = true === $isBookingFlow ? 'booking/create/authenticate.html.twig' : 'security/login.html.twig'; return $this->render($template, [ 'last_username' => $lastUsername, 'error' => $error, ]); } #[Route('/logout', name: 'app_logout')] #[IsGranted('ROLE_USER')] public function logout(): void { } }