加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-13 22:33:43 所属栏目:PHP教程 来源:网络整理
导读:我最近切换到了Cake2.0,并且遇到了Sessions超时的问题. 复制documentation中的示例,我将会话类型设置为php,并将超时设置为3天(4320分钟).但是,在阅读了各篇文章后,似乎即使在Cake中将超时设置为3天后,如果PHP.ini设置为会话或GC的更短超时,PHP可能会破坏GC中
我最近切换到了Cake2.0,并且遇到了Sessions超时的问题.

复制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)

解决方法

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

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读