【发布时间】:2011-08-05 01:03:28
【问题描述】:
我浏览过其他人的类似问题,但似乎没有什么与我所经历的完全一样。如果之前已解决此问题,请随时参考我的另一篇文章。
当用户进行身份验证时,我编写了一个 cookie,它在本地存储了一些基本的用户信息。当用户注销时,我试图删除 cookie 变量,但不会删除。如果我使用destroy方法,那么cookie会被删除,但我很好奇我在这里做错了什么:
Cookie 是这样写的并且正在工作:
function login(){
if($this->Auth->login($this->data)){
$this->Cookie->write('User.email',$this->data['User']['email'],true, '1 day');
}
}
但是,使用删除功能不起作用...
function logout(){
$this->Cookie->delete('User');
if($this->Auth->logout($this->data)){
//auto redirected
}
}
如果我用销毁替换删除,它会起作用。这是因为 cookie 数据被加密而不起作用吗?我可能在做一些愚蠢的事情,但我似乎无法弄清楚。
我正在使用此 cookie 来保持会话。我只想在用户单击注销按钮时将其删除。
谢谢!
【问题讨论】:
-
我的愚蠢问题 - 我看到你正在写 User.email 并删除用户。现在,我知道如果你有用户,它会删除用户和 User.email,但你确定删除方法可以找到用户吗?我会先看看那里。
-
根据这篇文章,我应该可以删除 User 变量。 book.cakephp.org/view/1282/Using-the-Component
-
我不知道这是否是您要查找的内容,但是您可以尝试将 cookie 的到期日期设置为过去,而不是使用 delete。
-
感谢您的建议,但我不希望 cookie 过期,除非用户强制注销。我已经通过使用 destroy 方法达到了我想要的最终结果,但我很好奇我是如何错误地使用 delete 的。
标签: cakephp cakephp-1.3