我已经在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());
}
有关我如何解决此问题的任何想法?
答案 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);
}
答案 1 :(得分:0)
不确定您使用的是哪个版本的蛋糕,但您可以尝试取消设置Cookie,这样可以防止它转到上次查看的页面。您可以将其添加到logout或beforefilter()。
答案 2 :(得分:0)
可能取决于CakePHP版本。
但你可以试试:
$this->Session->delete('Auth.redirect');
哪个适用于CakePHP 2.x
答案 3 :(得分:0)
admin是前缀吗?如果是这样,请尝试在admin视图中为注销链接设置admin为false。