0

我被要求使用“直接”的 HTML 和 Javascript 创建一个独立的 webapp,对现有的 PHP 应用程序(后端是 MySQL)进行用户身份验证。不幸的是,我对 PHP 身份验证的工作原理并没有真正的把握,而且我宁愿不为这种特殊情况投入大量时间来学习 PHP。

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

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

2)围绕PHP身份验证创建一个简单的REST-ful webservice(不知道怎么做)

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

4

4 回答 4

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>
于 2010-06-18T08:24:14.547 回答
0

没有 PHP 身份验证之类的东西。它是:

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

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

于 2010-06-18T08:22:53.270 回答
0

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

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

于 2010-06-18T08:25:25.333 回答
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>
于 2010-06-18T16:00:14.057 回答