【发布时间】:2014-05-20 10:00:51
【问题描述】:
我已经查看了所有内容,我可以看到人们在哪里为 ZF2 身份验证创建了初始会话,记住我的等等,但是当有活动时,我找不到人们在哪里更新会话。基本上,我已经有了一个身份验证(带有原则)系统和我当前的解决方案,并且我设置了以下配置设置:
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. 感觉就像我每次都在重新创建它 2. 有时会话似乎是随机的死。我认为这是因为原始会话在我设置的 30 分钟后终止。
有什么建议吗?
【问题讨论】:
-
刷新是什么意思?您是否尝试在有请求时增加会话生命周期?
-
完全正确。因此,如果我们假设此人已经登录并且我们假设会话设置为 30 分钟......我希望会话在每次请求时重置为 30 分钟。基本上只有在 30 分钟内没有请求时会话才会终止。
-
谢谢安迪·利布里安...这基本上回答了我的问题。我找不到这个! stackoverflow.com/questions/1236374/…
标签: php session authentication zend-framework2 zend-auth