php - 使用 ajax 和 php 时的用户身份验证和重定向

标签 php ajax json session web-applications

如果用户没有有效 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/

相关文章:

PHP PDO 安全

javascript - SQL MAX() 遇到问题

php - 将平均值添加到 mysql 表的末尾

javascript - 网站工作,但不是在 iphone 上。 XMLHttpRequest() 错误

java - 网页异步更新有哪些方式?

json - 在 JSON 树数据库中存储聊天的最佳方式?

json - 使用 Apache CXF 且不使用 Spring 的具有 JSON 表示形式的 REST API

php - 在 Laravel 中发布多个具有相同名称的字段

javascript - 使用 JS 将帖子发送到不同的域

javascript - 如何解析无效的 json 字符串(带有十六进制值)