Chrome中的CakePHP Auth会话变量完全丢失(在某些机器上)

时间:2012-04-21 05:34:47

标签: cakephp session-variables session-cookies cakephp-2.1

我可以访问我的网站,查看DebugKit>会话,并看到“Auth”变量 - 工作正常,一切都很好。

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

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

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

2 个答案:

答案 0 :(得分:2)

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

似乎我的Chrome设法获得了两个同名域名相同的Cookie - CAKEPHP。

为了确保为所有浏览器重置所有Cookie,我已在/app/Config/core.php更新了我的会话配置:

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

注意键'cookie'明确为会话标识设置新的cookie名称。在此更改之后,我能够从之前无法登录的所有浏览器登录到我的应用程序。

答案 1 :(得分:0)

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

仍然不确定问题究竟是什么,但我的网站已升级为CakePHP 2.2 beta现在不是问题

发行说明are here

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

  • 如果会话为空,AuthComponent现在使用loginRedirect作为默认重定向位置。
  • 对CakeSession的更改已恢复,以帮助解决IE8和会话丢失的问题。
  • SessionComponent :: id()始终返回sessionid。如有必要,它会自动启动会话。