0

我正在開發一個移動應用程序,必須與它自己的自定義後端API進行交流。我寧願不推出自己的身份驗證和帳戶管理,我寧願使用現有提供商的Oauth2。除Google以外的任何OAuth2提供商都可提供訪問令牌驗證而無需額外的服務器調用?

Google允許您驗證Google生成的Oauth令牌服務器端,而無需調用Google的服務器。這很重要,因爲我將分別驗證每個請求。如果服務器每次需要調用外部服務來驗證令牌,則該服務將變得越來越慢並且難以擴展。谷歌在本節中提到了如何驗證他們的令牌:Validating Tokens。除了需要每天大約刷新一次Google的證書,您可以單獨在自己的服務器上驗證Google生成的OAuth令牌。

我的問題是,有沒有其他OAuth提供商不需要額外的電話來驗證令牌?看起來Facebook和Twitter都需要調用他們的服務器來驗證令牌。由於這些令牌具有到期時間,因此調用外部服務來驗證此令牌並將此結果緩存在令牌有效期內是一種很好的做法嗎?如果這是一個很好的做法,我可以考慮除了Google的OAuth之外的這些服務。

回答

1

我不知道有任何其他主要服務以Google的方式簽署代幣。我懷疑(並希望)隨着時間的推移它會變得更加普遍。

至於Facebook和Twitter去,你必須驗證與他們的API令牌,因爲他們是權威的發佈它。你可以做的一件事是避免不斷地向他們的API發出請求,發出你自己的令牌,以便設備在與你的API交談時使用。

這可能是這樣的:??

POST /登錄ACCESS_TOKEN = twitter_token - >聯繫Twitter的API - >問題,並返回自己的令牌

POST/API /富的access_token = your_api_token

隨着這一點,只有一個調用外部驗證服務。其餘的API調用使用令牌,您可以使用自己的數據庫進行驗證。

+0

感謝您的提示。我將它用作API的認證,因此希望能夠使其成爲「無狀態」,因爲您不需要單獨調用登錄。不過,由於我遇到的所有問題,您的建議可能是正確的選擇。此外,由於原則上我知道令牌的到期時間,因此我可以緩存調用的結果以驗證令牌,並且只有在獲取新令牌時才調用外部驗證者。 – 2013-05-03 02:53:40

+0

你可以建議我做任何節點模塊,這爲我們自己的api創建訪問令牌嗎?並幫助我們發佈API令牌 – FLF 2013-06-28 08:11:12