用户注销后防止cookie被重用(Symfony 2.6)

时间:2015-08-11 17:23:49

标签: symfony fosuserbundle symfony-2.6

我正在运行使用FOSUserBundle的Symfony 2.6应用程序。当用户登录时,他们始终会被记住。因为我已在security.yml中配置了这些设置:

http://symfony.com/doc/current/cookbook/security/remember_me.html

Security.yml:

 remember_me:
      key: "%secret%"
      lifetime: 604800 # One week
      path: /
      domain: ~
      always_remember_me: true
      secure: true

当用户登录时,这会创建一个REMEMBERME cookie;这一切都很好。但是,当我存储Cookie时(例如,在Google Chrome中使用EditThisCookie),我仍然可以在用户退出后重新使用这些Cookie。

我的场景: - 用户登录 - 复制REMEMBERME cookie - 用户注销 - 粘贴REMEMBERME cookie并刷新页面 - 用户再次登录(我不想要!)

如何防止这些cookie在用户注销后再次使用?

1 个答案:

答案 0 :(得分:1)

REMEMBERME Cookie不用于恢复现有会话,而是用于登录。所以当然你可以在你注销后再次使用cookie登录,否则REMEMBERME的目的是什么?换句话说,这就是预期的行为。

无论如何,您可以添加"退出"删除cookie的事件监听器。

http://api.symfony.com/2.5/Symfony/Component/Security/Http/Firewall/LogoutListener.html

我无法推荐一个特定的教程,但你可以在网上找到大量的信息。如果您找不到足够的内容,请添加有关如何实施注销处理程序的新特定问题。