3

我想将会话超时增加到 24 小时左右,为此我搜索了网络,但没有任何帮助。目前,我的网站在过期后大约 40 分钟进行会话,我想将其设置为 24 小时。在我的 core.php 中,我添加了这些行

Configure::write('Session.timeout', '864'); // Session will last 24h
Configure::write('Session.autoRegenerate',true);
Configure::write('Security.level', 'medium');

任何想法或建议。

4

1 回答 1

4

CakeSession 配置参数的命名令人困惑,并且设置它们并不总是一致的(参见下面的示例)。

1)Configure::write('Session.timeout', 'XXX');是会话将持续的分钟数。因此,如果您希望它持续 24 小时,请将其设置为 24*60。

2)Configure::write('Session.autoRegenerate',true);没有链接到'Session.timeout'-- 即使蛋糕文档暗示它是。autoRegenerate取决于CakeSession::$requestCountdown价值。 $requestCountdown是重新生成会话 ID 之前的综合浏览量。它不是基于时间的。

所以这里出现了不一致:我们如何设置CakeSession::$requestCountdown值?与我们执行其他参数的方式不同。您必须通过以下方式在引导程序中设置它:

App::uses('CakeSession', 'Model/Datasource');
CakeSession::$requestCountdown = 25;

这个值不能像其他参数一样通过配置来设置(从 v2.4 开始)。请参阅我在此打开的票证,确认以上是预期用途:https ://github.com/cakephp/cakephp/issues/2078

3)Configure::write('Security.level', '?????');自 Cake 2.0 以来已被删除。

参考: http ://book.cakephp.org/2.0/en/development/sessions.html

于 2013-07-18T01:30:35.263 回答