2010-06-18 62 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> 
相關問題