2017-06-27 22 views
0

所以我來自移動客戶端的OAuth2的理解是:使用OAuth2,我應該從移動客戶端向服務發送授權碼還是令牌?

  1. 移動客戶端重定向頁面上,使用客戶端ID
  2. 資源持有者響應回來了,還auth_code
  3. auth_code一個access_token和交換來獲得用戶身份驗證refresh_token

如上所述,如果您的網絡服務支持您的移動應用程序,您將永久存儲access_tokenrefresh_token,這將允許您繼續訪問用戶的數據,只要他們沒有撤銷您的權限。

所以我的問題是:auth_code應該發送到服務,並在那裏交換的令牌?或者客戶應該交換auth_code,並將結果令牌發送給服務?它不重要,或者對於不同的實現可能不同?我假設客戶祕密只存儲在服務上,我的理解是需要將refresh_token換成新的access_token,但我不確定auth_code

回答

1

使用授權碼請求令牌時也需要客戶端機密。

客戶端可以直接請求令牌或將其委託給服務 - 並沒有一條硬性規則和快速規則說你應該這樣或那樣做。

我會說如果服務將使用令牌可能委託給服務是最有意義的 - 所以令牌留在那裏。如果客戶要使用令牌,這兩種方法都是有效的。

+0

啊我看到了 - 不會讓客戶端的客戶端機密是安全風險嗎?我的理解是,這就像你的應用程序的密碼,這證明你就是你。 – Rollie

+0

是的,將客戶端密鑰存儲在客戶端中是一種安全風險 - 因爲您無法阻止某人從中提取客戶端密鑰,但是如果您將客戶端密鑰存儲在服務中,則客戶端可以請求並使用它 - 而不用存儲它 - 只要客戶端和服務之間的通信被加密(無論如何),安全性都是可以的 – MiMo

相關問題