序
本文主要小結(jié)一下oauth2的四種模式的特點和適用場景空郊。
四種授權(quán)方式
OAuth 2.0定義了四種授權(quán)方式献起。
- 密碼模式(resource owner password credentials)
- 授權(quán)碼模式(authorization code)
- 簡化模式(implicit)
- 客戶端模式(client credentials)
密碼模式(resource owner password credentials
)
- 這種模式是最不推薦的躲惰,因為client可能存了用戶密碼
- 這種模式主要用來做遺留項目升級為oauth2的適配方案
- 當然如果client是自家的應(yīng)用奸焙,也是可以
- 支持refresh token
授權(quán)碼模式(authorization code
)
- 這種模式算是正宗的oauth2的授權(quán)模式
- 設(shè)計了auth code嫌术,通過這個code再獲取token
- 支持refresh token
簡化模式(implicit
)
- 這種模式比授權(quán)碼模式少了code環(huán)節(jié)烫扼,回調(diào)url直接攜帶token
- 這種模式的使用場景是基于瀏覽器的應(yīng)用
- 這種模式基于安全性考慮曙求,建議把token時效設(shè)置短一些
- 不支持refresh token
客戶端模式(client credentials
)
- 這種模式直接根據(jù)client的id和密鑰即可獲取token,無需用戶參與
- 這種模式比較合適消費api的后端服務(wù)映企,比如拉取一組用戶信息等
- 不支持refresh token悟狱,主要是沒有必要
refresh token的初衷主要是為了用戶體驗不想用戶重復(fù)輸入賬號密碼來換取新token,因而設(shè)計了refresh token用于換取新token
這種模式由于沒有用戶參與堰氓,而且也不需要用戶賬號密碼挤渐,僅僅根據(jù)自己的id和密鑰就可以換取新token,因而沒必要refresh token
小結(jié)
- 密碼模式(resource owner password credentials)(
為遺留系統(tǒng)設(shè)計
)(支持refresh token
) - 授權(quán)碼模式(authorization code)(
正宗方式
)(支持refresh token
) - 簡化模式(implicit)(
為web瀏覽器應(yīng)用設(shè)計
)(不支持refresh token
) - 客戶端模式(client credentials)(
為后臺api服務(wù)消費者設(shè)計
)(不支持refresh token
)