使用“正常”——而不是“记住我”身份验证——我可以设置成功和失败处理程序,将其添加到security.yml
文件中:
form_login:
# ...
success_handler: authentication_handler
failure_handler: authentication_handler
但是当用户的会话过期并且使用“记住我”cookie 重新进行身份验证时,我找不到监听“记住我”重新身份验证的方法。关于如何实现这一目标的任何想法?
使用“正常”——而不是“记住我”身份验证——我可以设置成功和失败处理程序,将其添加到security.yml
文件中:
form_login:
# ...
success_handler: authentication_handler
failure_handler: authentication_handler
但是当用户的会话过期并且使用“记住我”cookie 重新进行身份验证时,我找不到监听“记住我”重新身份验证的方法。关于如何实现这一目标的任何想法?
security.interactive_login
为事件创建一个监听器。这会在简单登录和“记住我”登录时触发(参见Symfony\Component\Security\Http\Firewall\RememberMeListener.php
@line:77)。
在侦听器中,您可以通过检查 cookie 将两者分开。你可以在这里找到更多关于监听器的信息。
我还没有尝试过,但也许您可以将侦听器附加到,success_handler
但请确保您SecurityContext
通过<argument>
服务配置注入服务。
然后,一旦您输入服务方法,您就可以:
if ( $this->securityContext->isGranted('IS_AUTHENTICATED_REMEMBERED') ){
// I am remembered visitor
}else{
// I am the new visitor
}
同样,这只是一个想法,但听起来它可以做到......