2011-12-24 32 views
0

therez真的在網絡上的討論很多認證是REST架構,所以我認爲它的時候我們把在一個place.A解決方案,聽起來有些好的解決方案:解決REST風格的認證通過HTTPS

(安全專家那裏,PLZ評論)

  1. 用戶登錄使用自己的用戶名和密碼,
  2. 在服務器上,用戶名和密碼進行驗證
  3. 如果憑據有效,我們得到了一個通過將時間戳與用戶標識進行混合來確定唯一標識。我們使用一個表來映射uniqueId-> userid,並且我們爲我們剛剛生成的唯一標識和用戶標識創建一個條目。另外,我們設置一個HTTP標頭說包含唯一標識和用戶標識的標識,其中包含字符串連接這樣<uniqueId>#<userid>.

  4. 在客戶端必須提供該信息的每個請求,

  5. 如果來自客戶端的請求,要求我們以確定客戶端是誰,讓我們可以檢查他的權限,那麼我們這樣做:

GET HTTP標頭#,

如果不包含無效的用戶

如果包含檢查數據庫中,如果映射uniqueId->用戶ID存在

如果是的,我們已經確定了用戶其他非法用戶

整個這個計劃是在HTTPS

+0

我會考慮使用像[OpenID](http://openid.net/)存在的東西,而不是發明新的東西。 – 2011-12-24 03:42:39

回答

1

我不認爲你需要這樣一個複雜的解決方案,如果你通過HTTPS。您甚至可以要求客戶端在每次請求時傳輸用戶名和密碼。只要客戶沒有受到損害,就沒有問題。如果它受到影響,整個解決方案無論如何都會崩潰。

總的來說,我認爲大多數開發者都對HTTP解決方案感興趣,而不是HTTPS。但爲此,已經有成熟的解決方案,如OpenID或OAuth。