我的站点上有一个使用 CakePHP 的身份验证系统。为此,它使用 PHP session 。
我所拥有的是一个 AJAX 调用(在每分钟运行的 setInterval 内)到一个检查用户是否仍然登录的函数。如果它返回 false,那么 Javascript 获取当前 URL 并尝试重定向它们,然后将他们重定向到登录页面。从理论上讲,这是可行的,因为它主动要求用户重新登录,而不是保持陈旧的 session ,后者只会要求他们在单击某些内容后立即登录。我的问题是我的 AJAX 调用使 session 保持事件状态。所以永远不要注销(我们不想要)
有什么我可以在 CakePHP 中做的或者我可以用来阻止这种情况发生的任何其他方法吗?
最佳答案
在检查 session 的有效性时,将 &ajax=
(任何内容)添加到查询字符串中。
然后,更改您的 PHP session 代码:
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;
}
关于javascript - 我怎样才能停止 AJAX 调用保持 PHP session 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6759058/