gpt4 book ai didi

CakePHP 删除 Cookie 问题

转载 作者:行者123 更新时间:2023-12-02 12:13:10 24 4
gpt4 key购买 nike

我浏览过其他人的类似问题,但似乎没有什么与我遇到的完全一样。如果之前已经解决过这个问题,请随时引用我的另一篇文章。

当用户进行身份验证时,我编写了一个 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 在 session 中保持不变。我只希望在用户单击注销按钮时将其删除。

谢谢!

最佳答案

查看源代码,这看起来要么是一个错误,要么是预期的行为。

CookieComponent 类有一个内部 __values 数组,用于跟踪 cookie 信息。如果调用delete('User.email'),它将从__values数组中删除'User'索引,包括索引下的所有数据。

但是,它只会取消设置名为“User”的 cookie。下次 Cake 启动时,它会发现名为“User.email”的 cookie 仍然存在,并将其加载回 __values 数组中。

假设这不是预期的行为,我编写了一个修复程序,然后将其提交给 Cake 团队。

关于CakePHP 删除 Cookie 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5655255/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com