我的网站上使用CakePHP拥有身份验证系统。为此,它使用PHP会话。
我所拥有的是对函数的AJAX调用(在setInterval中每分钟运行一次),该函数检查用户是否仍在登录。如果返回false,则Javascript将获取当前URL并尝试将其重定向, turn将他们重定向到登录页面。从理论上讲,这是可行的,因为它会主动要求用户重新登录,而不是进行陈旧的会话,后者只会要求用户单击某些内容后立即登录。我的问题是我的AJAX呼叫使会话保持活动状态。所以永远不要注销(我们不想要)
我可以在CakePHP中做任何事情,或者可以使用其他任何方法来阻止这种情况发生吗?
&ajax=检查会话的有效性时,在查询字符串中添加(任何内容)。
&ajax=
然后,更改您的PHP会话代码:
session_start(); if(!isset($_GET["ajax"])) $_SESSION["lastactivity"] = time(); if(now() - $_SESSION["lastactivity"] > 3600){ //3600 seconds header("Location: login.php?url="+urlencode(str_replace("&ajax=", "", $_SERVER["REQUEST_URI"]))); //Example: // Location: login.php?url=/sensible/secret.php?mode=show&hide=nothing exit; }