Подтвердить что ты не робот

Сделайте что-то сразу после успеха входа в symfony2 и перед перенаправлением?

Я ищу какое-то время, для любой информации, о том, как сделать что-то после успеха аутентификации в symfony2. Я хочу перефразировать пароль пользователя, чтобы использовать bcrypt сразу после успешной проверки подлинности, используя старый хэш. Мне нужно сделать это, когда у меня все еще есть действительный простой пароль, поэтому он должен быть сразу после проверки учетных данных и перед перенаправлением.

Любые подсказки, как это достичь?

Я нашел что-то о диспетчере событий в Symfony, но я не смог найти, произошло ли какое-либо событие после успешной аутентификации.

Пожалуйста, поправьте меня, если я попытаюсь сделать это неправильно и предложите лучший подход.

// ИЗМЕНИТЬ

Хорошо. Я обнаружил, что событие было запущено сразу после успеха auth, оно называется security.authentication.success. Итак, теперь я могу прикрепить к этому событию, но теперь я не уверен, где в моем коде привязки я должен присоединить слушателя событий? Должен ли я сделать это в методе /src/Pkr/BlogUserBundle/DependencyInjection/PkrBlogUserExtension.php in load()?

4b9b3361

Ответ 1

Вы можете указать обработчик успеха входа, который будет выполнен при успешном входе в систему.

Например, ваш security.yml

firewalls:
    main:
        pattern: ^/
        form_login:
            success_handler: my.security.login_handler

Теперь создайте класс, который реализует Symfony\Component\Security\Http\Authentication\AuthenticationSuccessHandlerInterface и при успешном входе в систему, вы можете делать все, что вам нужно, и обрабатывать перенаправление по своему усмотрению.

/**
 * 
 */
public function onAuthenticationSuccess(Request $request, TokenInterface $token)
{
    // handle it and return a response
}

Затем создайте службу с этим именем в вашем services.xml для вашего пакета или в вашем config.yml, используя только что созданный обработчик.

Я изначально узнал, как это сделать после этого урока:

http://www.reecefowell.com/2011/10/26/redirecting-on-loginlogout-in-symfony2-using-loginhandlers/