Eln*_*mov 5 authentication event-handling remember-me symfony
使用"正常" - 而非"记住我"身份验证 - 我可以设置成功和失败处理程序,将其添加到security.yml文件中:
form_login:
# ...
success_handler: authentication_handler
failure_handler: authentication_handler
Run Code Online (Sandbox Code Playgroud)
但是,当用户的会话过期并且使用"记住我"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
}
Run Code Online (Sandbox Code Playgroud)
再说一遍,这只是一个想法,但听起来好像可以......
| 归档时间: |
|
| 查看次数: |
2878 次 |
| 最近记录: |