1

好的,我在 symfony 的应用程序中有几个模块。我只有一个安全的模块:打开。我还有一个 layout.php,顶部包含一个选项卡式菜单,用于显示应用程序中每个模块的链接。此菜单还有一个部分,如果用户未登录,则显示用户链接到“登录”,如果用户登录,则显示“注销”链接。

当我尝试访问安全的模块时:我被转发到登录页面。我可以正常登录并创建cookie。如果我转到任何其他模块,菜单会显示“注销”链接。

假设我关闭浏览器(cookie 设置为在 15 天内过期)并再次打开浏览器,然后我转到主页模块。我应该登录,但菜单显示“登录”(认为没有用户登录)。我尝试访问 secure: on 模块,然后当页面重新加载时菜单显示“注销”链接,因为它现在读取 cookie。

我发现如果设置了 cookie,然后我关闭浏览器并在主页重新打开它,就会有两个 cookie,一个是“sfRemember”,另一个是“symfony”。在我访问安全模块并读取 cookie 后,“symony”的 cookie 与主页上显示的完全不同 - 这意味着它没有读取相同的 cookie,这就是为什么“注销”链接直到我才出现访问安全模块。如果在我打开该安全模块后返回主页,应用程序会很好地读取 cookie 并“显示注销”。

我真的不知道如何处理这个问题。任何帮助是极大的赞赏!

4

3 回答 3

0

我尝试了该票的解决方案,但我得到了这个:

致命错误:找不到类“sfGuardRememberMeFilter”

我使用 symfony 1.2 和最新版本的 sfGuardPlugin。那个类被删除了?同样在我的应用程序 settings.yml 中,我启用了以下模块,以防这证明对解决此问题有用

从插件或 symfony 核心激活的模块

enabled_modules:[默认,sfGuardAuth]

谢谢你的帮助!

于 2009-07-17T18:39:52.600 回答
0

我以前遇到过这个。

我的代码正在运行,但这张票中给出的解释似乎很熟悉。

http://trac.symfony-project.org/ticket/6607

于 2009-06-29T22:20:07.683 回答
0

可选择在 filters.yml 中启用“记住我”过滤器

安全性:类:sfGuardBasicSecurityFilter

于 2009-08-06T00:02:28.217 回答