gpt4 book ai didi

Symfony2 redis 冲动注销

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

在我们的 Symfony 项目中,我们将 session 配置为存储在 Redis 中

session:
handler_id: snc_redis.session.handler
cookie_lifetime: 3600

一切正常,但有时我们会注销。我 checkin 了 Redis,我仍然看到我的 session 具有正确的 TTL,但我已注销。

最佳答案

我终于找到了答案。 session 未刷新。因此,即使用户处于事件状态,此 session 也会在 1 小时后过期(在我的情况下)。

为避免这种行为,您应该在每次请求时刷新 session 。

services.xml 文件:

<service id="app.session_listener"
class="My\TestBundle\EventListener\SessionListener">
<tag name="kernel.event_subscriber" />
</service>

session 监听器文件:

<?php

namespace My\TestBundle\EventListener;

use Symfony\Component\HttpKernel\Event\GetResponseEvent;
use Symfony\Component\HttpKernel\KernelEvents;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;

class SessionListener implements EventSubscriberInterface
{

public function onKernelRequest(GetResponseEvent $event)
{
$event->getRequest()->getSession()->migrate();
}

public static function getSubscribedEvents()
{
return array(
KernelEvents::REQUEST => 'onKernelRequest',
);
}
}

关于Symfony2 redis 冲动注销,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41630406/

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