我有一个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是自己创建的 - 正确,只是没有更新
答案 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, "/");
}