2012-04-25 79 views
0

當客戶端嘗試使用基本驗證在API上登錄時,如果服務器返回API密鑰和共享密鑰,可以嗎?例如,如果用戶進入該鏈接http://api.example.com/authorize?auth=some_encoded_Base64_string,響應將是:Rest API基本驗證

Content-Type: application/xml 
Date: Fri, 10 Nov 2006 20:04:45 GMT  
Transfer-Encoding: chunked 
Authorization: apiKey;secretKey 

請問我用這個方法的問題?我想這樣做,因爲API核心方法只接受APIKey哈希值,並且爲了獲得他們需要使用基本身份驗證的第一步。現在我不會在這裏使用OAuth。

我正在嘗試新的ASP.NET Web API的這個項目。

+0

看起來很好,只要整個通信通過HTTPS即可。 – 2012-04-25 09:27:52

+0

我認爲這很好。例如,FogBugz有一個完全相同的方法。 – 2012-04-25 11:38:09

+0

感謝球員,我正在尋找一個公共的API使用這個,但沒有找到。我會去看看FogBugz他們是如何實現它的。 – gnaungayan 2012-04-25 12:09:55

回答

0

HTTP未在響應中定義Authorization標頭,因此如果您需要定義自定義標頭,請使用X-前綴。

同樣從設計的角度來看,HTTP頭文件是將正交的數據傳遞給調用。您似乎試圖傳遞需要在有效負載中的一段數據,所以我會避免使用這些頭文件。

我會在有效載荷中傳遞這些數據。

如果您使用SSL並在URL中傳遞數據,HTTP標頭或有效負載將是安全的。

+0

感謝您的回覆。我試圖消化你所說的話,但我似乎沒有得到有效載荷的含義?我的授權意思是我將使用HTTP授權標頭。 – gnaungayan 2012-04-25 11:10:59

+0

有效載荷我指的是您發回的數據的一部分。 HTTP授權標頭適用於請求,但沒有響應。 – Aliostad 2012-04-25 13:07:17

+0

好吧,我明白了。我應該在哪裏放置服務器響應?在URI上? – gnaungayan 2012-04-26 02:08:34