[英]OAuth2 for custom API
我正在嘗試將OAuth2用於我正在創建的API,但可以使用一些解釋流程如何工作。 我發現了類似的問題(例如: 使用OAuth保護我的REST API,同時仍然允許通過第三方OAuth提供商進行身份驗證(使用DotNetOpenAuth) )但是他們沒有說明第三方登錄的問題。
我不希望使用OpenID(但是,無論如何),特別是當通過委派進行身份驗證可能正常工作時。 它似乎過於復雜,並沒有很多支持良好的庫。 (我正在使用PHP + Laravel 4)
問題分為4個(ish)實體:
我想我已經找到了用戶在我的auth服務器上創建帳戶並使用該帳戶登錄時的流程:
我還沒有測試過工作流程,但這看起來似乎有效。 但是,第三方登錄已證明更加困難。 這是我到目前為止所得到的:
這可能有用,但感覺非常復雜。 當然必須有一種方法可以跳過這些步驟中的一些步驟? 我對第8-10步特別感興趣。 據我所知,用戶永遠不必使用第三方登錄與我的Auth服務器進行交互。 問題是如何最好地將Google / Facebook / LinkedIn中成功的id_token(或其他內容)連接到我的API上的“帳戶”資源。
現在,我並不擔心任何其他客戶端連接到API,但它會在未來的某個時間發生。
“據我所知,用戶永遠不必使用第三方登錄與我的Auth服務器進行交互。” 這只是部分正確。 從理論上講,您可以使用第三方登錄的令牌作為您自己的令牌。 因此,正常的資源請求將是:
不利的一面是,每次發出請求時,您的API服務器都必須與第三方服務器通信(無論是否需要來自它們的數據)。 相反,當您生成自己的令牌時,您可以獲得更多控制權,並且驗證請求更加簡單。
我會堅持你的工作流程。 我做了類似的事情,我的步驟幾乎相同。 在“計算”步驟時,您還必須考慮,對於步驟2-4,您基本上不得不做任何事情,因為Google,Facebook和co已經做得很好;)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.