Php Symfony 2在注销时不会删除“记住我”cookie

Php Symfony 2在注销时不会删除“记住我”cookie,php,symfony,cookies,Php,Symfony,Cookies,我的目标是以编程方式从控制器注销。我用。除了未删除的longess(重命名为REMEMBERME)cookie之外,一切正常。已删除,但未删除:) 在控制器代码中注销: $response = $this->redirectToRoute('homepage'); $response->headers->clearCookie('LONGSESS'); return $response; 所以,我们称之为行动 此操作的请求标头(按预期): 此操作的响应标题(如预期): 重

我的目标是以编程方式从控制器注销。我用。除了未删除的
longess
(重命名为
REMEMBERME
)cookie之外,一切正常。已删除,但未删除:)

在控制器代码中注销:

$response = $this->redirectToRoute('homepage');
$response->headers->clearCookie('LONGSESS');
return $response;
所以,我们称之为行动

  • 此操作的请求标头(按预期):

  • 此操作的响应标题(如预期):

  • 重定向头(按预期):

  • 主页的下一个请求标题(与预期不同-
    longess
    值与上一个请求相同):

  • 所以用户没有注销


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

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

    framework:
        session:
            cookie_domain: YOUR-DOMAIN.COM
    

    因此,正确的方法是:

    $response->headers->clearCookie('LONGSESS', '/', 'YOUR-DOMAIN.COM');
    
    您是否尝试过:

    $response->sendHeaders();
    
    紧接着:

    $response->headers->clearCookie('LONGSESS');
    
    ?

    framework:
        session:
            cookie_domain: YOUR-DOMAIN.COM
    
    firewalls:
        your_firewall:
                remember_me:
                    domain: YOUR-DOMAIN.COM
    
    $response->headers->clearCookie('LONGSESS', '/', 'YOUR-DOMAIN.COM');
    
    $response->sendHeaders();
    
    $response->headers->clearCookie('LONGSESS');