1

我目前正在使用此处的示例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 时间并接受它。

有没有人有任何想法我可以尝试?

4

1 回答 1

2

将 cookie 生命周期设置为 0:

'cookie_lifetime'     => 0

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

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

'gc_maxlifetime' => 3600

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

于 2013-06-26T17:18:53.563 回答