使用CakePHP 2.0,会话暂停时间过早

时间:2012-02-14 12:37:47

标签: session cakephp-2.0

我最近切换到了Cake2.0,并且遇到了一些Sessions超时的问题。#/ p>

documentation复制示例,我将会话类型设置为php,并将超时设置为3天(4320分钟)。但是,在阅读了各篇文章后,似乎即使在Cake中将超时设置为3天后,如果PHP.ini设置为会话或GC的更短超时,PHP可能会破坏GC中的会话。

所以,我将Session默认更改为cake,使用相同的超时。

Configure::write('Session', array(
   'defaults' => 'cake',
   'timeout' => 4320,
));

Configure::write('Security.level', 'medium');

然而,虽然这应该让我登录3天,但我发现在我需要再次登录之前,我几乎得不到3个小时。

是否存在我应该注意的会话超时问题,或者是以秒为单位的超时(不是几分钟?),还是受到1.3中的Security.level的影响?我无法找到任何关于它如何在2.0中工作的硬文档,或者可能导致问题的原因。

提前致谢。

答案: 对于后来进来看到这个的人。 2.0.5中存在一个错误,其中会话超时未保存Config.write();

中的值

要解决,请更新到2.0.6(或当它离开测试版时为2.1)

1 个答案:

答案 0 :(得分:1)

如果您使用的是安全组件,您可以随时尝试将其过期时间更改为3小时:

$components = array(
    'Security' => array(
        'csrfExpires' => '+3 hour'
    )
);

我不是说这是一个好主意,但它可以帮助你缩小问题的范围。如果您使用的是安全组件,则可能是这个问题。

此外,Session.timeout以分钟(而非秒)为单位。