CakePHP:登录时,重定向到注销前查看的最后一页

时间:2014-02-06 09:05:18

标签: php cakephp

我已经在Cake中实现了身份验证和授权,并且大部分都可以根据需要运行。 但是,如果我从需要特定凭据的页面(例如/ admin)注销并以另一个不同特权用户身份重新登录,我会被重定向到/ admin并显示错误消息。

查看chrome中的请求标头,我注意到即使在注销后仍然设置了Cookie CAKEPHP。

public function login() {
    ...
        if ($this->Auth->login()) {
              $this->set('login_failed', false);
        return $this->redirect($this->Auth->redirect());
    } else {
    ...
    }
}


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

有关我如何解决此问题的任何想法?

4 个答案:

答案 0 :(得分:1)

将此内容分配给AppController

public $components = array(               
        'Auth'=> array(                
            'logoutRedirect' => array('controller' => 'users', 'action'=>'login'),
            'loginRedirect' => array('controller' => 'users', 'action' => 'login')
          )
)

您的退出功能也不正确。你应该这样做:

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

loginRedirect

logoutRedirect

答案 1 :(得分:0)

不确定您使用的是哪个版本的蛋糕,但您可以尝试取消设置Cookie,这样可以防止它转到上次查看的页面。您可以将其添加到logout或beforefilter()。

答案 2 :(得分:0)

可能取决于CakePHP版本。

但你可以试试:

$this->Session->delete('Auth.redirect');

哪个适用于CakePHP 2.x

答案 3 :(得分:0)

admin是前缀吗?如果是这样,请尝试在admin视图中为注销链接设置admin为false。