【发布时间】:2012-12-29 00:20:34
【问题描述】:
使用 Symfony2 和 FOSUserBundle,我在以下实现中没有得到预期的行为。
首先,要知道 Chrome 中的 Continue where I left off 选项可以完全恢复用户会话,而无需检查“记住我”或类似的内容。因此,它保存了一个包含会话所有信息的 cookie。
我想要做的是避免从通过 Chrome 上的 Continue where I left off 选项存储的 cookie 创建会话。
或者,如果我无法避免创建会话,至少尝试知道会话来自完全透明的方式。
我在 Symfony2 文档中找到了这个(特别是 here):
但是,在某些情况下,您可能希望强制用户在访问某些资源之前实际重新进行身份验证。例如,您可能允许“记住我”用户查看基本帐户信息,但随后要求他们在修改该信息之前实际重新进行身份验证。 安全组件提供了一种简单的方法来做到这一点。除了明确分配给他们的角色外,根据身份验证的方式,用户会自动获得以下角色之一: IS_AUTHENTICATED_ANONYMOUSLY - 自动分配给在站点的防火墙保护部分中但尚未实际登录的用户。这只有在允许匿名访问时才有可能。 IS_AUTHENTICATED_REMEMBERED - 自动分配给通过记住我 cookie 进行身份验证的用户。 IS_AUTHENTICATED_FULLY - 自动分配给在当前会话期间提供了登录详细信息的用户。
所以,如果我没记错的话,由于Copntinue where I left off 选项而透明登录的用户应该有 IS_AUTHENTICATED_REMEMBERED。
好吧,事实并非如此。现实情况是授权是 IS_AUTHENTICATED_FULLY。
有人通过这个吗?
对这一切有什么想法吗?
谢谢
【问题讨论】:
标签: php security google-chrome symfony fosuserbundle