SessionManager超时/注销

时间:2013-06-26 17:02:00

标签: zend-framework2

我目前正在使用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时间并使用它。

有没有人有我可以尝试的想法?

1 个答案:

答案 0 :(得分:2)

将Cookie生命周期设置为0:

'cookie_lifetime'     => 0

只有在浏览器关闭后,它才会告诉浏览器终止cookie。

定义服务器会话存储生命周期:

'gc_maxlifetime' => 3600

因此,在1小时不活动后,会话存储将被清理。