gpt4 book ai didi

php - 注销时 Symfony 2 不会删除记住我的 cookie

转载 作者:搜寻专家 更新时间:2023-10-31 21:55:59 24 4
gpt4 key购买 nike

我的目标是以编程方式从 Controller 注销。我用 this nice solution .除了未删除 LONGSESS(重命名为 REMEMBERME)cookie 之外,一切正常。它删除了但没有:)

在 Controller 代码中注销:

$response = $this->redirectToRoute('homepage');
$response->headers->clearCookie('LONGSESS');
return $response;

因此,调用此操作。

  1. 此操作的请求 header (如预期):

    Cookie SESS=n4jbl1m61l6bceesbeusrbq044; LONGSESS=QXBwQnVuZGxlXEVudGl0eVxVc2VyOmRYTmxja0IxYzJWeUxtTnZiUT09OjE0NDgyMDMyMjQ6ZTFhNzBlNGEyMWM4NGM3N2UzYmI3ZmJiNWIzMGM5MDg2ZDAyOWY1ZGVhMWI4NTYyNGQ0OTJmNjVmNmRjOTY2NQ%3D%3D
  2. 此操作的响应 header (如预期):

    Set-Cookie:SESS=ai1gt79r49o184du3tknv7tdf6; path=/; domain=.myhost.local
    Set-Cookie:LONGSESS=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; Max-Age=0; path=/; httponly
    Set-Cookie:SESS=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; Max-Age=0; path=/; httponly
  3. 重定向 header (如预期):

    Location:/app_dev.php/
  4. 主页的下一个请求 header (与预期不同 - LONGSESS 值与上一个请求相同):

    Cookie:LONGSESS=QXBwQnVuZGxlXEVudGl0eVxVc2VyOmRYTmxja0IxYzJWeUxtTnZiUT09OjE0NDgyMDMyMjQ6ZTFhNzBlNGEyMWM4NGM3N2UzYmI3ZmJiNWIzMGM5MDg2ZDAyOWY1ZGVhMWI4NTYyNGQ0OTJmNjVmNmRjOTY2NQ%3D%3D; SESS=ai1gt79r49o184du3tknv7tdf6

所以用户没有登出。

怎么可能呢? LONGSESS cookie 设置为已删除,已过期但下一个请求具有相同的值?

最佳答案

解决方案是在clearCookie 方法调用中设置第三个参数domain。它必须等于 session 设置中的域:

framework:
session:
cookie_domain: YOUR-DOMAIN.COM

firewalls:
your_firewall:
remember_me:
domain: YOUR-DOMAIN.COM

所以,正确的做法是:

$response->headers->clearCookie('LONGSESS', '/', 'YOUR-DOMAIN.COM');

关于php - 注销时 Symfony 2 不会删除记住我的 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33722635/

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