2012-02-06 78 views
1

我正在實施一個restful api,我想知道是否有可能使用ajax進行安全身份驗證而不公開認證信用卡?將要使用的憑據將使用捲髮傳遞相同的方式:Restful Authentication Through Ajax

curl_setopt($ch, CURLOPT_USERPWD, 'username:password'); 

的使用將收到:

$_SERVER['PHP_AUTH_USER'] 
$_SERVER['PHP_AUTH_USER']; 
$_SERVER['PHP_AUTH_PW']; 

這是可能的,如果是這樣,怎麼樣?

回答

3

不,這是實現Oauth的確切目的和用例。

使用基本HTTP授權將特別從ajax公開證書,因爲即使您通過HTTPS運行所有內容,在客戶端代碼中仍然可用(在發出任何請求之前)。

如果您僅在內部使用此API(不期望第三方開發人員使用它),您可能會嘗試使用「API密鑰」而不是純文本用戶名和密碼。通過這種方式,密鑰可以被重新生成,並且永遠不會泄露用戶(可能)重用的密碼。

我發現API key + HTTPS涵蓋了很多像這樣的情況。

您只需生成一個唯一的散列,然後使用它來驗證用戶... Basecamp API使用API​​密鑰作爲用戶名。

curl_setopt($ch, CURLOPT_USERPWD, '<API KEY>:x'); 
+0

因此,在使用ajax的授權過程中,我應該只檢查用戶是否有會話嗎? – 2012-02-06 20:20:16

+0

要獲得具體幫助,您需要在您的問題中提出具體目標。 – jondavidjohn 2012-02-06 20:23:16