如何从非基于PHP的AJAX应用程序使用基于PHP的身份验证?
我被要求使用“直接”HTML和Javascript创建一个独立的webapp,该webapp可以对现有的PHP应用进行用户身份验证(后端是MySQL)。不幸的是,我对PHP身份验证的工作原理并没有很好的理解,我不想为了这个特殊的案例而花很多时间学习PHP 到目前为止,我可以看到两种可能性 1) 在我的新应用程序周围创建一个PHP包装,并使用本机PHP身份验证(不喜欢这样) 2) 围绕PHP身份验证创建一个简单的REST-ful Web服务(不知道怎么做)如何从非基于PHP的AJAX应用程序使用基于PHP的身份验证?,php,ajax,authentication,rest,restful-authentication,Php,Ajax,Authentication,Rest,Restful Authentication,我被要求使用“直接”HTML和Javascript创建一个独立的webapp,该webapp可以对现有的PHP应用进行用户身份验证(后端是MySQL)。不幸的是,我对PHP身份验证的工作原理并没有很好的理解,我不想为了这个特殊的案例而花很多时间学习PHP 到目前为止,我可以看到两种可能性 1) 在我的新应用程序周围创建一个PHP包装,并使用本机PHP身份验证(不喜欢这样) 2) 围绕PHP身份验证创建一个简单的REST-ful Web服务(不知道怎么做) 我还有什么要考虑的吗?非常感谢您的帮助
我还有什么要考虑的吗?非常感谢您的帮助 没有PHP身份验证这样的东西。它是:
- HTTP身份验证,使用HTTP头
- 通过提交HTML表单进行身份验证
也许你的网站可以调用PHP webapp的登录页面,并检查它是否成功。没有一种标准的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>
$(文档).ready(函数(){
$(“表单#登录”).bind(“提交”,函数(){
$.post(“login.php”,“username=INSERTUSERNAMEHERE&password=INSERTPASSWORDHERE”);
返回false;
});
});
“PHP身份验证”通常接受用户名和密码,然后(如果正确的话)以某种方式将当前会话标记为“已登录”
使用正确的凭据通过Ajax提交应用程序的登录表单可能就足够了。下面是我要做的:
$('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>
谢谢你的提示,这很有道理。联系原始PHP应用程序的作者,并说他将制作一些定制的PHP“服务”供我调用。我想结果会好的。