[授權] OAuth2.0
OAuth 是一個開發標準(Open Standard),用來處理有關「授權」(Authorization)相關的問題 允許授權當下的APP取得使用者在平台的相關資訊 OAuth2 有很多變化
腳色:
Resource Owner,也就是使用者。 Client,要向使用者取得權限的應用程式,有自己的 Client ID、 Client Secret。 Authorization Server,負責驗證使用者身分、發 Access Token 給應用程式 Resource Server,存放資源的伺服器,認 Token 給使用者存取資源 用詞
Authorization Grant 同意應用程式取得資源 Redirect URI 驗證伺服器驗證、授權完畢後,返回應用程式的路徑 Scope 授權範圍 OAuth2.0 四種授權類型流程(Grant Types): Authorization Code 最常見,步驟:
應用程式(Client) 將使用者導向 Authorization Server,提供 Redirect URL, scope, 應用程式的 client id… Authorization Server 驗證使用者身分,通過之後發給 Authorization Grant,將網址列帶上 Authorization Grant 後將使用者導回 Redirect URI 回到應用程式(Client)。 應用程式(Client)拿 Authorization Grant 和 Authorization Server 換取 Access Token,Authorization Server 會透過應用程式(Client)專屬的 Client ID、 Client Secret 驗證應用程式身分。 應用程式(Client)帶著 Access Token 向 Resource Server 存取資源 Implicit 適合在 Client-side 運行的應用程式適合使用,例如 SPA(Single Page Application) 跳過交換 Access Token 的過程,由 Authorization Server 直接給予 Access Token 比較不安全