2010-08-13 52 views
3

我正在爲我的應用程序實現一個Web服務器API,並且在確定應該使用什麼身份驗證方法來驗證用戶(以及其他客戶端應用程序)的請求時陷入了困境。我認爲我並不真正瞭解OAuth和其他身份驗證協議的作用。我可以爲我的Web API使用基於會話的身份驗證嗎?

我想要在沒有Web瀏覽器干預的情況下執行身份驗證,完全從我的iPhone應用程序或另一個自定義第三方客戶端進行身份驗證。基於會話的身份驗證是否是到此爲止的好方法? (例如)Facebook iPhone客戶端如何使用Web API進行身份驗證?我不認爲它使用OAuth或類似的東西,因爲從不顯示觸摸登錄/授權表單。據我所知,OAuth僅用於第三方應用程序。但爲什麼這樣呢? iPhone客戶端不能被認爲是第三方應用嗎?

對不起,如果我的問題含糊不清,請指出我缺少的細節等。謝謝。

回答

3

OAuth中的「Auth」與認證無關,但與授權有關。這意味着如果您是服務提供商,則可以支持OAuth,以允許用戶根據用戶需要授權訪問任何適用於OAuth的消費者的個人資源。 OAuth擁有自己的安全體系結構來確保驗證,授予和授權的整個過程...然後,對於任何進一步的請求,身份驗證是一個重要步驟。

你說得對。 Facebook iPhone雖然可以,但並未使用OAuth進行身份驗證。你可以驗證它here。我認爲,因爲它是Facebook本身的應用程序,當您完全是網站所有者時,添加另一層安全性非常麻煩。

因此,如果您不打算支持其他第三方客戶端訪問您的用戶資源,那麼基於cookie的身份驗證就沒有問題。否則,您可能希望提供OAuth,並且我認爲這是值得實施的,因爲,誰知道YGNI將來。

+0

謝謝先生,你的回答非常豐富! :)如果將來需要第三方應用程序,我將在未來實施OAuth。目前我將使用基於cookie的身份驗證。 – eugeniodepalo 2010-08-15 20:30:29

相關問題