Is it possible to set a session cookie, upon successful login? An event listener? If so, which event? And how i can access the response object to attach the cookie to it?
1条回答 默认 最新
- doulang6695 2013-05-06 20:33关注
You can create an EventListener which listens to the kernel.response Event and modify the response.
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')); } } }
in your 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 }
Whatever you need to decide to set the cookie (security_context, usermanager, session, etc.) can be injected trough the DI Container.
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 vue3页面el-table页面数据过多
- ¥100 vue3中融入gRPC-web
- ¥15 kali环境运行volatility分析android内存文件,缺profile
- ¥15 写uniapp时遇到的问题
- ¥15 vs 2008 安装遇到问题
- ¥15 matlab有限元法求解梁带有若干弹簧质量系统的固有频率
- ¥15 找一个网络防御专家,外包的
- ¥100 能不能让两张不同的图片md5值一样,(有尝)
- ¥15 informer代码训练自己的数据集,改参数怎么改
- ¥15 请看一下,学校实验要求,我需要具体代码