成功登录后是否可以设置会话cookie?一个事件监听器?如果是这样,哪个事件?我如何访问响应对象以将cookie附加到它?
Emi*_*aos 10
您可以创建一个EventListener来侦听kernel.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'));
}
}
}
Run Code Online (Sandbox Code Playgroud)
在您的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 }
Run Code Online (Sandbox Code Playgroud)
无论您需要决定设置cookie(security_context,usermanager,session等),都可以通过DI Container注入.
| 归档时间: |
|
| 查看次数: |
5866 次 |
| 最近记录: |