我正在使用登录模块。在注销功能中,我按如下方式编写代码,首先终止会话,然后将其重定向到主页。它工作正常但会话没有破坏。 如果有人知道请帮助我 这是我登录的代码片段&注销:
function login()
{
if(!empty($this->data))
{
$user1= $this->User->validateLogin($this->data['User']);
if($user1== true)
{
$this->redirect(array('action'=>'index'));
}
else
{
$this->Session->setflash('Login failed, Try again');
}
}
}
function logout()
{
$this->Session->delete('User');
$this->redirect('/users/index');
}
我得到的信息是,我必须保留标题信息,下面是我的代码片段: $ this-> header(“Cache-Control:no-cache,no-store,must-revalidate”); $ this-> header(“Expires:Mon,1970年1月1日00:00:00 GMT”);
但是我没有得到我的控制器的哪一部分我应该粘贴这段代码?请帮帮我......
答案 0 :(得分:8)
尝试$ this-> Session-> destroy(); destroy方法将删除会话cookie和存储在临时文件系统中的所有会话数据。检查此link
答案 1 :(得分:2)
您正在重定向,因为它不被允许,而不是因为您的注销功能中的重定向。您还需要在控制器的beforefilter(CakePHP 2)中允许使用注销功能:
$this->allow('logout');
答案 2 :(得分:1)
你不想杀死这个会话。只记录用户!
$this->Session->delete('Auth');
否则你会破坏cookie和其他用户定义的设置,这些设置非常烦人(语言,......)
但官方的蛋糕方式是:
$this->redirect($this->Auth->logout());