OAuth2認證和授權入門
阿新 • • 發佈:2019-02-02
title 後端 用戶體驗 設置 如果 level 直接 授權碼 cloud 密碼模式(
授權碼模式(
簡化模式(
客戶端模式(
OAuth2四種授權方式
四種授權方式
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 token
- 密碼模式(resource owner password credentials)(
為遺留系統設計
)(支持refresh token
) - 授權碼模式(authorization code)(
正宗方式
)(支持refresh token
- 簡化模式(implicit)(
為web瀏覽器應用設計
)(不支持refresh token
) - 客戶端模式(client credentials)(
為後臺api服務消費者設計
)(不支持refresh token
)
參考:
https://cloud.tencent.com/developer/article/1340117
http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html
OAuth2認證和授權入門