CakePHP删除Cookie问题
我浏览过类似的其他人的问题,但似乎没有任何东西像我正在经历的那样.如果之前已经解决了这个问题,请随时引用我的另一篇文章.
当用户进行身份验证以在本地存储一些基本用户信息时,我编写了一个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 } } 如果我用destroy替换delete,它就可以了.这是不行的,因为cookie数据是加密的?我可能会做一些愚蠢的事,但我似乎无法弄明白. 我正在使用这个cookie来坚持会议.如果用户点击退出按钮,我只想删除它. 谢谢! 解决方法
查看源代码,看起来这可能是错误或预期的行为.
CookieComponent类有一个内部__values数组,用于跟踪cookie信息.如果你调用delete(‘User.email’),它将从__values数组中删除’User’索引,包括索引下的所有数据. 但是,它只会取消设置名为“用户”的cookie.下次Cake启动时,会看到名为“User.email”的cookie仍然存在并将其加载回__values数组. 假设它不是预期的行为,我写了一个修复程序,我将继续将其提交给Cake团队. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |