3

我可以访问我的站点,查看 DebugKit > Session,然后查看“Auth”变量 - 工作正常,一切都很好。

但是 - 在两台机器上(测试了 5-7 台),并且仅在 Chrome 中,Auth 变量完全丢失。这可以防止用户登录,搞砸重定向......等等。

我们已经尝试卸载并重新安装 Chrome - 我们确保 Chrome 中的安全设置和会话/cookie 设置与所有其他工作的计算机相同......等等。(也许我们错过了一个?,但是 - 全新安装, 所以...)。我们确保我们都使用相同版本的 Chrome。

起初我认为这可能是我的代码的问题(现在仍然可能),但后来我们尝试在其中一台“愚蠢”计算机上登录另一个 Cake 站点,它做了同样的事情 - 无法登录 -在。

4

2 回答 2

2

我刚刚设法在我的机器上解决了这个问题。

似乎不知何故,我的 Chrome 设法为同一个域 - CAKEPHP 获取了两个具有相同名称的 cookie。

为了确保所有浏览器的所有 cookie 都被重置,我更新了我的会话配置/app/Config/core.php

Configure::write('Session', array(
            'defaults' => 'php',
            'cookieTimeout' => 0,
            'cookie' => 'newNameSESSION',
));

注意键 'cookie' 显式地设置了一个新的 cookie 名称来标识会话。在此更改之后,我能够从以前无法登录的所有浏览器登录到我的应用程序。

于 2012-04-26T04:18:54.470 回答
0

它一定与安全组件有关。当我关闭它时,他们可以正常登录。

仍然不确定到底是什么问题,但将我的网站升级到CakePHP 2.2 beta现在已经不是问题了

发行说明在这里

以下是 2.1.2 稳定版本(我在 2.1 上)的一些发行说明 - 这些是与 Sessions/Auth...等相关的,可能与该问题有关:

  • 如果会话为空,AuthComponent 现在使用 loginRedirect 作为默认重定向位置。
  • 恢复了对 CakeSession 的更改,以帮助解决 IE8 和会话丢失的问题。
  • SessionComponent::id() 总是返回 sessionid。如有必要,它将自动启动会话。
于 2012-05-04T13:07:04.977 回答