gpt4 book ai didi

php - 交响乐 2 : Setting a cookie for the current session upon login

转载 作者:可可西里 更新时间:2023-11-01 13:45:24 25 4
gpt4 key购买 nike

是否可以在成功登录后设置 session cookie?事件监听器?如果有,是哪个事件?我如何访问响应对象以将 cookie 附加到它?

最佳答案

您可以创建一个 EventListener 来监听 kernel.response Event并修改响应。

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、session 等)都可以通过 DI 容器注入(inject)。

关于php - 交响乐 2 : Setting a cookie for the current session upon login,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16308795/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com