成功登录后可以设置会话cookie吗?一个事件监听器?如果是这样,哪个事件?以及我如何访问响应对象以将Cookie附加到它?Symfony 2:登录后为当前会话设置一个cookie
回答
您可以创建一个侦听kernel.response Event并修改响应的EventListener。
namespace Acme\DemoBundle\EventListener
use Symfony\Component\HttpKernel\Event\FilterResponseEvent;
use Symfony\Component\HttpFoundation\Cookie;
class AddMyCookie
{
public function onKernelResponse(FilterResponseEvent $event)
{
$response = $event->getResponse();
if (/** whatever **/) {
$response->headers->setCookie(new Cookie('cookie_name', 'cookie_value'));
}
}
}
在services.yml
:
parameters:
acme_demo.add_my_cookie.class: Acme\DemoBundle\EventListener\AddMyCookie
services:
acme_demo.add_my_cookie.kernel_response_listener:
class: %acme_demo.add_my_cookie.class%
tags:
- { name: kernel.event_listener, event: kernel.response, method: onKernelResponse }
无论你需要决定设置Cookie(security_context,的UserManager,会话等)可以注入槽的DI容器。
什么是'/ **什么** /'?你可以添加一个例子吗? – 2015-06-23 09:06:45
无论你做什么决定添加cookie,都应该进入if。 – 2015-06-23 19:13:56
就像检查凭证一样?我想你应该添加一个小例子。 – 2015-06-23 19:15:52
- 1. 登录会话cookie存储在Symfony中?
- 2. 为什么登录令牌响应cookie设置为会话
- 3. symfony 2.8 - 会话失败后成功登录重定向(有2个会话ID在cookie中)
- 4. 在哪里存储登录尝试和当前登录状态,Cookie或会话?
- 5. rails,devise在登录之前设置cookie
- 6. 登录登录后,Alfresco设置会话变量
- 7. 当用户登录时将会话变量设置为user_id
- 8. 登录后不能设置Cookie
- 9. 如何在CodeIgniter中设置登录会话记录2周?
- 10. 使用自定义DynamoDB会话处理程序登录后Symfony会话为空
- 11. 当session.auto_start设置为true时,会话cookie不会被发送
- 12. 当前目录设置Cookie及其子目录中唯一
- 13. 登录后ASP .NET会话重置吗?
- 14. 未设置Rails会话Cookie
- 15. 为经典ASP会话Cookie设置HTTPONLY
- 16. HTTPOnly将cookie过期设置为会话
- 17. 使用Cookie与会话进行登录
- 18. 用户登录会话与Cookie
- 19. curl登录,两次传递会话cookie
- 20. 登录后会话TImeout?
- 21. 当会话cookie在Django中过期时重定向到登录
- 22. Symfony的2获取当前会话时间
- 23. Symfony重定向到会话过期后的登录页面
- 24. Symfony 3 - 登录后如何保持会话ID?
- 25. Spring用户登录和会话劫持后的安全cookie
- 26. ServiceStack在登录请求表单后不保存会话cookie
- 27. 如何将会话cookie的HttpOnly设置设置为false?
- 28. 如何为会话和登录系统设置pyramid_beaker?
- 29. Symfony的2 - 登录程序
- 30. 如何在django中设置登录cookie?
是否有必要成为一个cookie,还是足以将其存储在会话中? – 2013-05-01 22:51:45
它必须是一个饼干! – vinnylinux 2013-05-06 18:44:03
ping!你有一个答案:) – 2013-05-08 08:11:30