You can create an EventListener that listens to the kernel.response event and modifies 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 () { $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 }
All you need to set a cookie (security_context, usermanager, session, etc.) can be entered through the DI container.
source share