【问题标题】:CakePHP 2.0 logoutCakePHP 2.0 注销
【发布时间】:2011-11-24 21:39:48
【问题描述】:

任何想法,为什么如果您尝试在 CakePHP 2.0 中访问 logged out 的注销链接,它会请求身份验证?而不是仅仅意识到您已注销,然后像往常一样将您发送到重定向注销页面。

例如:

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

这里是允许的:

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

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

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

谢谢

【问题讨论】:

    标签: php cakephp


    【解决方案1】:

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

    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');
        }
    }
    

    【讨论】:

    • 另一种选择是将AuthComponent 配置为在logout() 之后重定向到不需要身份验证的页面。这是许多网络中的常见行为,例如退出后显示登录表单
    猜你喜欢
    • 1970-01-01
    • 2013-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-07
    • 1970-01-01
    相关资源
    最近更新 更多