CakePHP会话未自动续订

CakePHP会话未自动续订,cakephp,Cakephp,我在LAMP服务器上使用的是CakePHP v2,如果用户保持活动状态,会话不会自动更新,这似乎有问题 换句话说,如果我将会话cookie设置为3天,那么即使用户一直处于活动状态,用户也会在3天后注销 起初,我认为这可能是正确的行为,但后来当我发布一个关于它的问题()时,我得到的唯一答案往往是,我所经历的行为不是默认行为 所以,大概我在什么地方做错了什么。下面是我在APP/Config/core.php中的内容: Configure::write('Session', array( 'd

我在LAMP服务器上使用的是CakePHP v2,如果用户保持活动状态,会话不会自动更新,这似乎有问题

换句话说,如果我将会话cookie设置为3天,那么即使用户一直处于活动状态,用户也会在3天后注销

起初,我认为这可能是正确的行为,但后来当我发布一个关于它的问题()时,我得到的唯一答案往往是,我所经历的行为不是默认行为

所以,大概我在什么地方做错了什么。下面是我在APP/Config/core.php中的内容:

Configure::write('Session', array(
    'defaults' => 'database',
            'cookie' => 'mycookie',
            'timeout' => 4320 //3 days
));

我只希望cookie从用户的最后一个活动起3天内保持有效。即使用户一直处于活动状态,它目前正在执行的操作也会在3天后过期。

我认为您需要达到您的要求。(阅读时只需更新会话的过期时间即可。)

将此内容放入AppController中的后过滤器操作中:

$this->Session->renew()

这将续订会话cookie


(如果我出于某种原因转到前端,将其放入PreforeFilter会导致我的管理会话过期。)

感谢您的回复。那么我能从你的回答中假设它肯定不应该已经这样做了吗?上次我问了一个这样的问题,我被引导相信我的蛋糕安装一定有问题,因为它没有这样做。@Joseph是的,你的蛋糕没有问题。你只需要自定义你的会话。我相信如果有这样的自动更新机制,它会在烹饪书中提到在玩了一会儿之后,看起来蛋糕终于达到了我想要的效果。我现在创建一个新的3天会话,“expires”时间戳是“1341546414”。然后,如果我在几秒钟后刷新页面,时间戳将更改为“1341546435”-因此一定是其他原因导致会话过期,而不是Cake。嗯,是的,这在某种程度上是个好消息,但遗憾的是,我仍然没有找到一个完整的解决方案。看起来Cake会正确地更新会话的到期日期,但浏览器中cookie上的到期日期不会被更新。我在网站上发布了一个关于这个问题的新问题,当时我正在处理一个在v2.6上编写的旧应用程序,并且一直面临着这个问题,比如@Joseph。然后我遇到了一些让事情更清楚的事情。最后,
session.cookie\u life
在决定会话何时超时方面起着重要作用。