会话超时不起作用+ cakephp

时间:2013-07-16 10:03:52

标签: session cakephp-2.0 session-timeout

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

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

任何想法或想法。

1 个答案:

答案 0 :(得分:4)

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

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

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

所以这里出现了不一致性:我们如何设置CakeSession::$requestCountdown值?我们做其他参数的方式不一样。你必须通过以下方式在bootstrap中设置它:

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

此值不能像其他参数一样通过配置设置(截至v2.4)。请参阅我在此打开的故障单,确认以上是预期用途:https://github.com/cakephp/cakephp/issues/2078

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

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