我怎样才能听到“记住我”? Symfony2 中的重新验证事件?

发布于 2024-12-13 09:00:41 字数 306 浏览 0 评论 0原文

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

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

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

Using “normal” — not “remember me” authentication — I can set a success and failure handlers, adding this to the security.yml file:

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

But I couldn't find a way for listening for “remember me” reauthentication, when a user's session is expired and a “remember me” cookie is used to reauthenticate again. Any ideas on how can I achieve this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

〗斷ホ乔殘χμё〖 2024-12-20 09:00:41

security.interactive_login 事件。这会在简单登录和“记住我”登录时触发(请参阅 Symfony\Component\Security\Http\Firewall\RememberMeListener.php @line:77)。

在侦听器中,您可以通过检查 cookie 将两者分开。
您可以在此处找到有关侦听器的更多信息。

Create a Listener for the security.interactive_login event. That gets triggered on both simple and "remember me" logins (see Symfony\Component\Security\Http\Firewall\RememberMeListener.php @line:77).

In the listener you can separate the two by checking the cookie.
You can find more about the listener here.

云朵有点甜 2024-12-20 09:00:41

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

然后,一旦您输入服务方法,您就会执行以下操作:

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

同样,这只是一个想法,但听起来好像可以......

I haven't tried this but maybe you could attach listener to success_handler but make sure you inject SecurityContext service via <argument> in service config.

Then, is soon as you enter you service method you do:

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

Again, this is just an idea but sounds like it could do...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文