request->get(key: 'username'); $password = $request->request->get(key: 'password'); $csrfToken = $request->request->get(key: '_csrf_token'); $request->getSession()->set(name: Security::LAST_USERNAME, value: $username); return new Passport( userBadge: new UserBadge(userIdentifier: $username, userLoader: function ($userIdentifier) { $user = $this->userRepository->findOneBy(['username' => $userIdentifier]); if (!$user) { $user = $this->userRepository->findOneBy(['email' => $userIdentifier]); } if (!$user) { throw new UserNotFoundException(); } return $user; }), // remove me later for PasswordCredentials() credentials: new CustomCredentials(customCredentialsChecker: fn($credentials, User $user) => $credentials === 'test', credentials : $password), // new PasswordCredentials($password), badges: [ new CsrfTokenBadge(csrfTokenId: 'authenticate', csrfToken: $csrfToken), new RememberMeBadge(), ] ); } public function onAuthenticationSuccess(Request $request, TokenInterface $token, string $firewallName): ?Response { if ($target = $this->getTargetPath(session: $request->getSession(), firewallName: $firewallName)) { return new RedirectResponse(url: $target); } return new RedirectResponse( url: $this->router->generate(name: 'app_main') ); } protected function getLoginUrl(Request $request): string { return $this->router->generate(name: 'app_login'); } }