我的目标是以编程方式从控制器中注销。我用this nice solution。除了未删除的LONGSESS (改名为REMEMBERME) cookie外,一切正常工作。删除但未:)
注销控制器代码:
$response = $this->redirectToRoute('homepage');
$response->headers->clearCookie('LONGSESS');
return $response;那就叫这个行动吧。
LONGSESS值与前一个请求相同):
Cookie:LONGSESS=QXBwQnVuZGxlXEVudGl0eVxVc2VyOmRYTmxja0IxYzJWeUxtTnZiUT09OjE0NDgyMDMyMjQ6ZTFhNzBlNGEyMWM4NGM3N2UzYmI3ZmJiNWIzMGM5MDg2ZDAyOWY1ZGVhMWI4NTYyNGQ0OTJmNjVmNmRjOTY2NQ%3D%3D;SESS=ai1gt79r49o184du3tknv7tdf6因此,用户不会注销。
怎么可能呢?LONGSESS cookie设置为deleted,过期但下一个请求的值相同?
发布于 2015-11-15 18:46:37
解决方案是在domain方法调用中设置第三个参数clearCookie。它必须等于会话设置中的域:
framework:
session:
cookie_domain: YOUR-DOMAIN.COM和
firewalls:
your_firewall:
remember_me:
domain: YOUR-DOMAIN.COM所以,正确的方法:
$response->headers->clearCookie('LONGSESS', '/', 'YOUR-DOMAIN.COM');发布于 2016-05-29 08:19:45
你试过:
$response->sendHeaders();在以下情况下:
$response->headers->clearCookie('LONGSESS');https://stackoverflow.com/questions/33722635
复制相似问题