OAuth 協(xié)議為用戶資源的授權(quán)提供了一個安全的市埋、開放而又簡易的標(biāo)準(zhǔn)例隆。與以往的授權(quán)方式不同之處是 OAuth的授權(quán)不會使第三方觸及到用戶的帳號信息(如用戶名與密碼),即第三方無需使用用戶的用戶名與密碼就可以申請獲得該用戶資源的授權(quán)瘟仿,因此 OAuth是安全的凉泄。OAuth 是 Open Authorization 的簡寫辫呻。
OAuth 2.0 成員
- Resource Owner 資源擁有者:用戶
- Client 第三方接入平臺:請求者
- Resource Server 服務(wù)器資源:數(shù)據(jù)中心
- Authorization Server 認(rèn)證服務(wù)器
Oauth2.0 基本流程
四種模式
名稱 | grant_type | 說明 | |
---|---|---|---|
授權(quán)碼模式 | authorization code | authorization_code | 先登錄獲取code,再獲取token |
簡化模式 | implicit | implicit | 在redirect_uri 的Hash 傳遞token, Auth 客戶端運行在瀏覽器中清钥,如js,flash |
密碼模式 | resource owner password credentials | password | 將用戶名,密碼傳過去,直接獲取token |
客戶端模式 | client credentials | client_credentials | 無用戶,用戶向客戶端注冊,然后客戶端以自己的名義向'服務(wù)端'獲取資源 |
更新模式
客戶端發(fā)出更新令牌的HTTP請求放闺,包含以下參數(shù):
- grant_type:表示使用的授權(quán)模式祟昭,此處的值固定為"refresh_token",必選項怖侦。
- refresh_token:表示早前收到的更新令牌篡悟,必選項谜叹。
- scope:表示申請的授權(quán)范圍,不可以超出上一次申請的范圍搬葬,如果省略該參數(shù)荷腊,則表示與上一次一致。
例子介紹
一個完整的交互例子: my-website 獲取用戶的 Github信息
Related
(阮一峰解釋OAuth2.0)[https://www.kancloud.cn/kancloud/oauth_2_0/63339]