@Webspec

Как авторизовать пользователя сразу после регистрации?

Всем привет! Подскажите пожалуйста по автоматическому входу пользователя сразу после регистрации.

Последняя версия Symfony 5.2
Делаю так, как указано в некоторых примерах в интернете:

GuardAuthenticatorHandler $guardHandler,
LoginFormAuthenticator $formAuthenticator

И вызов:
$guardHandler->authenticateUserAndHandleSuccess(
$user,
$request,
$formAuthenticator,
'main'
);

IDE и сам код ругается на то, что $formAuthenticator не наследует интерфейс \Symfony\Component\Security\Guard\AuthenticatorInterface
Что тогда нужно туда передавать?
  • Вопрос задан
  • 202 просмотра
Пригласить эксперта
Ответы на вопрос 1
@Webspec Автор вопроса
Ответ оказался простым.
Если вы используете новую систему авторизации, то так.

/**
     * Тест системы авторизации
     *
     * @Route("/test/", name="test")
     *
     * @param Request $request
     * @param LoginFormAuthenticator $loginFormAuthenticator
     * @param UserAuthenticatorInterface $userAuthenticator
     *
     * @return Response
     * @throws ServiceException
     */
    public function test(
        Request $request,
        LoginFormAuthenticator $loginFormAuthenticator,
        UserAuthenticatorInterface $userAuthenticator
    ): Response
    {
        $user = $this->userService->getUserByEmail('ivan@webspec.ru');
        return $userAuthenticator->authenticateUser($user, $loginFormAuthenticator, $request);
    }
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы