【问题标题】:Symfony sfGuardPlugin session inconsistenciesSymfony sfGuardPlugin 会话不一致
【发布时间】:2010-11-05 08:29:29
【问题描述】:

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

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

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

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

我真的不知道如何处理这个问题。非常感谢任何帮助!

【问题讨论】:

  • 这个问题解决了吗?我有同样的问题。

标签: php session symfony1 sfguard


【解决方案1】:

我以前也遇到过。

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

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

【讨论】:

    【解决方案2】:

    我在那张票上尝试了解决方案,但我得到了这个:

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

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

    来自插件或 symfony 核心的激活模块

    enabled_modules:[默认,sfGuardAuth]

    感谢您的帮助!

    【讨论】:

      【解决方案3】:

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

      安全性: 类:sfGuardBasicSecurityFilter

      【讨论】:

      • 你在推荐之前试过这个吗? - 我想你会发现它不起作用(SF 1.4)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-02
      • 2011-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多