CakePHP 2.0注销

时间:2011-11-24 21:39:49

标签: php cakephp

如果您尝试访问CakePHP 2.0中的注销链接已注销,它会请求身份验证?而不只是意识到你已经注销,然后像往常一样将你发送到重定向注销页面。

所以例如:

public function logout()
{
    $this->redirect($this->Auth->logout());
}

这是允许的:

public function beforeFilter()
{
    parent::beforeFilter();
    $this->Auth->allow('add','login','logout');
}

这意味着如果未登录的用户进入注销页面,它会要求他们登录,然后他们会自动注销,因为他们已经请求注销页面并对其进行了身份验证。

这在1.3中没有发生。有什么想法吗?

由于

1 个答案:

答案 0 :(得分:2)

解决了问题!问题是它实际上是将我发送到请求身份验证的另一个页面,因此登录请求。不知道为什么它会让我登录注销方法呢?所以我做了以下事情:

public function beforeFilter()
{
    parent::beforeFilter();
    $this->Auth->allow('add','login','logout');
}

public function logout()
{

    if($this->Auth->user())
    {
        $this->redirect($this->Auth->logout());
    }
    else
    {
        $this->redirect(array('controller'=>'pages','action' => 'display','home'));
        $this->Session->setFlash(__('Not logged in'), 'default', array(), 'auth');
    }
}