我最近切换到了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)
答案 0 :(得分:1)
如果您使用的是安全组件,您可以随时尝试将其过期时间更改为3小时:
$components = array(
'Security' => array(
'csrfExpires' => '+3 hour'
)
);
我不是说这是一个好主意,但它可以帮助你缩小问题的范围。如果您使用的是安全组件,则可能是这个问题。
此外,Session.timeout以分钟(而非秒)为单位。