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

时间:2011-12-20 01:34:34

标签: php ajax json session web-applications

如果用户没有有效会话,我通常会通过重定向用户来限制用户访问。

例如:

<?php
  session_start();
  if (!isset($_SESSION["userInfo"])) {
    header("Location: index.php");
  }
?>

但是我正在使用ajax为我的所有页面加载启动一个新项目。

如果会话不再有效,我应该如何强制刷新我的webapp页面?

在我的所有ajax请求之前是否有一个dedication身份验证请求,如果失败请通过javascript刷新页面?

或者,我应该只在每个json响应中包含身份验证数据,然后在进一步处理ajax请求之前进行身份验证吗?

有更好的方法吗?

1 个答案:

答案 0 :(得分:2)

理想情况下,您可以很好地设计客户端代码,以便从服务器端处理各种错误。

当您的客户端代码进行ajax调用时,它应该查看响应的状态。如果用户没有会话,则服务器应回复401(未授权)响应,这意味着“这是一个有效的URL,但您需要进行身份验证”。

每当您的客户端代码获得401时,它应该执行使用户登录所需的任何操作。这可以将它们重定向到登录屏幕,或者执行某种模式身份验证DHTML-popup。