Zend Framework 2(ZF2)使用存储刷新身份验证会话


Zend Framework 2 (ZF2) auth session refresh using storage

我到处都看了,我可以看到人们在哪里为ZF2-auth创建了初始会话,记住我的,等等,但当有活动时,我找不到人们在哪里更新会话。基本上,我已经有了一个身份验证(带条令)系统和我目前的解决方案,我设置了以下配置设置:

return array (
    'session' => array(
        'cookie_lifetime' => 1800, // 30 min
        'remember_me_seconds' => 1800, // 30 min
        'use_cookies' => true,
    ),
);

然后我要做的是在每个请求上重新加载,如下所示:注意:我有代码,只有当用户已经登录时才会这样做。

class Module
{
    public function onBootstrap(EventInterface $e)
    {
        $this->getEventManager()->attach('route', array($this, 'onRoute'), -100);
    }
    public function onRoute(EventInterface $e)
    {
        $sessionConfig = new SessionConfig();
        $sessionConfig->setOptions($config['session']);
        $sessionManager = new SessionManager($sessionConfig);
        $sessionManager->rememberMe($config['session']['remember_me_seconds']);
        $sessionManager->start();
    }
}

我的基本需求是,每当有请求时,我都会尝试刷新会话(服务器和客户端),但只有1。感觉我每次都在重新创造它。有时会话似乎随机终止。我认为这是因为原始会话在我设置为30分钟后死亡。

有什么建议吗?

PHP应该为您更新会话时间,您不需要手动更新。

此外,不要对每个请求都调用rememberMe(),因为这将生成一个新的会话令牌(假设会话已经存在)。