如何从非基于PHP的AJAX应用程序使用基于PHP的身份验证?

时间:2010-06-18 08:18:41

标签: php ajax authentication rest restful-authentication

我被要求使用“直接”HTML和Javascript创建一个独立的webapp,它对现有的PHP应用程序进行用户身份验证(后端是MySQL)。不幸的是,我真的不太了解PHP身份验证的工作方式,而且我宁愿不花费大量时间专门为这个特殊情况学习PHP。

到目前为止,我可以看到两个可能性

1)围绕我的新应用程序创建一个PHP包装器并使用本机PHP身份验证(不喜欢这个)

2)围绕PHP身份验证创建一个简单的REST-ful Web服务(不知道如何做)

还有什么我应该考虑的吗?非常感谢帮助!

4 个答案:

答案 0 :(得分:1)

没有一种标准的PHP身份验证方式。通常它涉及在会话中存储一些信息或UID,但很难概括。

您需要通过查看提交位置的表单来了解现有身份验证的工作原理。

例如,如果您发现登录表单类似于

<form id="login" action="login.php">
<input type="text" name"username">
<input type="password" name="password">
</form>

您可以使用AJAX调用模拟表单提交。

这样的调用在JQuery中可能看起来像这样:

<script>
$(document).ready(function() {
  $("form#login").bind("submit",function() {
    $.post("login.php", "username=INSERTUSERNAMEHERE&password=INSERTPASSWORDHERE");
    return false;
  });
});
</script>

答案 1 :(得分:0)

没有PHP身份验证这样的东西。它是:

  • HTTP身份验证,使用HTTP标头。
  • 通过提交HTML表单进行身份验证。

也许您的网站可以调用PHP webapp的登录页面,并检查它是否成功。

答案 2 :(得分:0)

“PHP身份验证”通常接受用户名和密码,随后(如果它们是正确的)将当前会话标记为“以某种方式登录”。

使用正确的凭据通过Ajax提交应用程序的登录表单可能就足够了。

答案 3 :(得分:0)

这就是我要做的事情:

$('form#login').submit(function(e){
    e.preventDefault();
    var formValues = $(this).serialize();
    $.ajax({
      url: 'login.php',
      type: 'POST',
      dataType: 'html',
      data: formValues,
      success: function(data, textStatus, xhr) {
        $('.login-response').html(data);
      }
    });
});

你的html会是这样的:

<form id="login" action="login.php">
    <input type="text" name"username">
    <input type="password" name="password">
    <div class="login-response"</div>
</form>