序
本文主要小結一下oauth2的四種模式的特色和適用場景。web
四種受權方式
OAuth 2.0定義了四種受權方式。後端
- 密碼模式(resource owner password credentials)
- 受權碼模式(authorization code)
- 簡化模式(implicit)
- 客戶端模式(client credentials)
密碼模式(resource owner password credentials)
- 這種模式是最不推薦的,由於client可能存了用戶密碼
- 這種模式主要用來作遺留項目升級爲oauth2的適配方案
- 固然若是client是自家的應用,也是能夠
- 支持refresh token
受權碼模式(authorization code)
- 這種模式算是正宗的oauth2的受權模式
- 設計了auth code,經過這個code再獲取token
- 支持refresh token
簡化模式(implicit)
- 這種模式比受權碼模式少了code環節,回調url直接攜帶token
- 這種模式的使用場景是基於瀏覽器的應用
- 這種模式基於安全性考慮,建議把token時效設置短一些
- 不支持refresh token
客戶端模式(client credentials)
- 這種模式直接根據client的id和密鑰便可獲取token,無需用戶參與
- 這種模式比較合適消費api的後端服務,好比拉取一組用戶信息等
- 不支持refresh token,主要是沒有必要
refresh token的初衷主要是爲了用戶體驗不想用戶重複輸入帳號密碼來換取新token,於是設計了refresh token用於換取新token 這種模式因爲沒有用戶參與,並且也不須要用戶帳號密碼,僅僅根據本身的id和密鑰就能夠換取新token,於是不必refresh tokenapi
小結
- 密碼模式(resource owner password credentials)(
爲遺留系統設計
)(支持refresh token
)
- 受權碼模式(authorization code)(
正宗方式
)(支持refresh token
)
- 簡化模式(implicit)(
爲web瀏覽器應用設計
)(不支持refresh token
)
- 客戶端模式(client credentials)(
爲後臺api服務消費者設計
)(不支持refresh token
)