如果用户没有有效会话,我通常会通过重定向用户来限制用户访问。
例如:
<?php
session_start();
if (!isset($_SESSION["userInfo"])) {
header("Location: index.php");
}
?>
但是我正在使用ajax为我的所有页面加载启动一个新项目。
如果会话不再有效,我应该如何强制刷新我的webapp页面?
在我的所有ajax请求之前是否有一个dedication身份验证请求,如果失败请通过javascript刷新页面?
或者,我应该只在每个json响应中包含身份验证数据,然后在进一步处理ajax请求之前进行身份验证吗?
有更好的方法吗?
答案 0 :(得分:2)
理想情况下,您可以很好地设计客户端代码,以便从服务器端处理各种错误。
当您的客户端代码进行ajax调用时,它应该查看响应的状态。如果用户没有会话,则服务器应回复401(未授权)响应,这意味着“这是一个有效的URL,但您需要进行身份验证”。
每当您的客户端代码获得401时,它应该执行使用户登录所需的任何操作。这可以将它们重定向到登录屏幕,或者执行某种模式身份验证DHTML-popup。