加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

CakePHP删除Cookie问题

发布时间:2020-12-13 17:06:47 所属栏目:PHP教程 来源:网络整理
导读:我浏览过类似的其他人的问题,但似乎没有任何东西像我正在经历的那样.如果之前已经解决了这个问题,请随时引用我的另一篇文章. 当用户进行身份验证以在本地存储一些基本用户信息时,我编写了一个cookie.当用户注销时,我试图删除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团队.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读