5

使用“正常”——而不是“记住我”身份验证——我可以设置成功和失败处理程序,将其添加到security.yml文件中:

form_login:
    # ...
    success_handler: authentication_handler
    failure_handler: authentication_handler

但是当用户的会话过期并且使用“记住我”cookie 重新进行身份验证时,我找不到监听“记住我”重新身份验证的方法。关于如何实现这一目标的任何想法?

4

2 回答 2

4

security.interactive_login为事件创建一个监听器。这会在简单登录和“记住我”登录时触发(参见Symfony\Component\Security\Http\Firewall\RememberMeListener.php@line:77)。

在侦听器中,您可以通过检查 cookie 将两者分开。你可以在这里找到更多关于监听器的信息。

于 2012-07-11T11:01:45.323 回答
0

我还没有尝试过,但也许您可以将侦听器附加到,success_handler但请确保您SecurityContext通过<argument>服务配置注入服务。

然后,一旦您输入服务方法,您就可以:

if ( $this->securityContext->isGranted('IS_AUTHENTICATED_REMEMBERED') ){
    // I am remembered visitor
}else{
    // I am the new visitor
}

同样,这只是一个想法,但听起来它可以做到......

于 2012-04-23T20:05:10.417 回答