我目前正在使用http://zf2.readthedocs.org/en/latest/modules/zend.session.manager.html
中的示例在我的autoload / global.php文件中,我有以下内容:
'session' => array(
'config' => array(
'class' => 'Zend\Session\Config\SessionConfig',
'options' => array(
'name' => 'otwebsoft',
'save_path' => __DIR__ . '/../../data/session',
'use_cookies' => true,
'cookie_lifetime' => 3600,
'cookie_httponly' => true,
'cookie_secure' => false,
'remember_me_seconds' => 1800
)
),
'storage' => 'Zend\Session\Storage\SessionArrayStorage',
'validators' => array(
array(
'Zend\Session\Validator\RemoteAddr',
'Zend\Session\Validator\HttpUserAgent'
)
)
)
我喜欢会话在X时间后过期,如果用户已登录,则在页面刷新后,用户会自动注销,并且必须再次登录。但是,我希望如此,如果用户继续浏览网站,在X时间之后会话没有被终止,但可能只是重新生成或某些东西,以便他们不会被迫重新登录。
我只是不确定如何以及是否可以同时执行这两种方案。如果这是不可能的,我可以提高会话生命周期的X时间并使用它。
有没有人有我可以尝试的想法?
答案 0 :(得分:2)
将Cookie生命周期设置为0:
'cookie_lifetime' => 0
只有在浏览器关闭后,它才会告诉浏览器终止cookie。
定义服务器会话存储生命周期:
'gc_maxlifetime' => 3600
因此,在1小时不活动后,会话存储将被清理。