2010-06-18 64 views
0

我被要求创建一个独立的web应用程序,使用“直接”的HTML和Javascript来对现有的PHP应用程序进行用户身份验证(后端是MySQL)。不幸的是,我对PHP身份验证的工作方式并没有一个明确的把握,而且我宁可不花大量时间来学习PHP,只是为了这个特殊情况。如何从基于非PHP的AJAX应用程序使用基于PHP的身份验证?

我可以看到两个possibilites到目前为止

1)创建一个PHP包装围绕我的新应用,并使用原生的PHP认证(不喜欢这个)

2)创建一个简单的REST的Web服务FUL围绕PHP身份验证(不知道该怎么做)

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

回答

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> 
+0

谢谢你的提示,这是有道理的。抓住原始PHP应用程序的作者,并说他会为我打电话做一些自定义的php“服务”。认为它会很好。 – DavidR 2010-06-18 15:26:17

0

有没有这样的事情作为PHP身份验证。它可以是:

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

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

0

“PHP认证”通常接受用户名和密码,随后(如果他们是正确的)当前会话标记为“记录在“不知何故。

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

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> 
相关问题