Cakephp auth会话不在chrome中工作

时间:2012-02-03 18:03:54

标签: php cakephp

我对cakephp的登录功能有疑问。当我尝试在chrome下登录时,我的用户名/密码被接受,但会话未正确存储。我做了一些调试/搜索,发现问题的根源(至少我认为)是会话ID没有存储在chrome的cookie中。当我使用firefox时,登录按预期工作,查看cookie会在名为“CAKEPHP”的cookie中显示会话ID。但是,当我在登录/访问页面后查看chrome的cookie时,没有包含会话ID的cookie。因此,每次加载页面时,会话ID似乎都在变化。我一直在谷歌搜索并寻找解决方案这几个小时没有运气。我确实在http://www.pixelastic.com/blog/273:losing-session-request-cakephp-chrome找到了类似的东西,但是使用这个解决方案并不适用于我。我不知道它是否适用于旧版本的cakephp。我正在使用2.0版本。

我会发布我正在使用的登录代码,但我直接从教程中获取它,所以我不认为这是问题(特别是因为它在FF中工作):

public function login() {
    Security::setHash('sha1');
    if ($this->Auth->login()) {
        $this->Session->setFlash(__('Welcome'));
        $this->redirect(array('action' => 'index'));
    } else {
        $this->Session->setFlash(__('Invalid username or password, try again'));
    }
}

1 个答案:

答案 0 :(得分:2)

原来我的设置存在问题。如果有人遇到这样的问题:我在虚拟机中运行服务器,问题似乎与主机在VM运行时进入睡眠/低功耗模式有关。当主机唤醒时,Chrome cookie的问题就开始发生了。重新启动VM修复了问题。