如果用户没有有效 session ,我通常会通过重定向用户来限制用户访问。
例如:
<?php
session_start();
if (!isset($_SESSION["userInfo"])) {
header("Location: index.php");
}
?>
但我正在开始一个使用 ajax 加载所有页面的新项目。
如果 session 不再有效,我应该如何强制刷新我的 Web 应用程序的页面?
我是否应该在我的所有 ajax 请求之前使用一个专用身份验证请求,如果失败则通过 javascript 刷新页面?
或者,我是否应该只在每个 json 响应中包含身份验证数据,然后在进一步处理 ajax 请求之前进行身份验证?
有更好的方法吗?
最佳答案
理想情况下,您的客户端代码设计得足够好,因此您有办法处理来自服务器端的各种错误。
当您的客户端代码发出 ajax 调用时,它应该查看响应的状态。如果用户没有 session ,服务器应回复 401(未授权)响应,这意味着“这是一个有效的 URL,但您需要进行身份验证”。
每当您的客户端代码收到 401 时,它应该做任何必要的事情让用户登录。这可能是将他们重定向到登录屏幕,或者进行某种模式身份验证 DHTML 弹出窗口。
关于php - 使用 ajax 和 php 时的用户身份验证和重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8569804/