我使用Cake
PHP在我的网站上有一个身份验证系统.它使用PHP Sessions进行此操作.
我所拥有的是一个AJAX调用(在每分钟运行的setInterval内)到一个函数,它检查用户是否仍然登录.如果它返回false,那么Javascript将获取当前URL并尝试重定向它们,将它们重定向到登录页面.理论上这是有效的,因为它主动要求用户重新登录而不是举行陈旧的会话,只要他们点击一下就会要求他们登录.我的问题是我的AJAX调用使会话保持活跃状态.所以永远不要退出(我们不想要)
我可以在CakePHP中使用任何其他方法来阻止这种情况发生吗?
最佳答案 在检查会话的有效性时,将& 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;
}