CakePHP auth会话与cookie不更新

时间:2010-09-23 17:40:38

标签: session cakephp cookies authentication

我有一个ACL + auth驱动的应用程序。一切正常但我发现用户在一段随机的时间后退出了。在做了一些研究之后,我发现cookie设置一次不会改变它在页面刷新时的截止日期。所以它是这样的:

我将手动过期时间设置为1分钟(Security.level为低(在cake / libs中有一些更改)并且超时60)

19:00:00 - 用户加载页面 - 已设置cookie

19:00:05 - 用户登录(cookie不会更改到期日期)

19:00:30 - 页面刷新(cookie不会更改到期日期)

19:00:55 - 页面刷新(cookie不会更改到期日期)

19:01:05 - 页面刷新 - 用户注销...(cookie在1分钟后过期)

所以问题是用户在设置cookie后60秒内退出而不是60秒不活动。 CakePHP会自动处理cookie文件吗?或者我自己要照顾它吗? 我所做的就是在config / core.php中设置一个cookie名称并设置auth。我没有任何cookie处理功能,但cookie是自己创建的 - 正确,只是没有更新

1 个答案:

答案 0 :(得分:1)

我有同样的问题,并使用以下代码对其进行反击,该代码在每个页面加载和ajax调用时调用。

    if(isset($_COOKIE[Configure::read("Session.cookie")])){
            $session_delay = Configure::read("Session.timeout") * (Configure::read("Security.level") == "low" ? 1800 : 100);
            setcookie(Configure::read("Session.cookie"), $_COOKIE[Configure::read("Session.cookie")], mktime() + $session_delay, "/");
    }