oauth2.0理解
阿新 • • 發佈:2018-09-13
edi tro code 中心 author 步驟 不用 模式 提供商 Oauth2的4種模式:
- 授權碼(Authorization)模式(獲取code、code換取access_token)
- 簡化(Impilict)模式(直接換取access_token,基本不用)
- 密碼(Resource Owner Password)模式(客戶端向用戶索取賬號密碼,然後客戶端向服務端索取授權,基本不用)
- 客戶端(Client)模式(客戶端以自己的名義要求"服務提供商"提供服務;場景:提供接口服務)
授權碼模式流程
-
註冊客戶端
- clientId = 1
- secret=secret
- 註冊用戶
-
請求授權碼
- http://localhost:8080/oauth2-server/authorize?client_id=client_id&client_secret=client_secret&response_type=code&redirect_uri=redirect_uri&scope=productservice%20agentservice
- 跳轉至授權登錄頁面
- 登錄後,回調到redirect_uri?code=xxxxx&scope=productservice%20agentservice
- POST http://localhost:8080/oauth2-server/token?client_id=client_id&client_secrets=client_secrets&grant_type=authorization_code&redirect_uri=redirect_uri&code=xxxx&scope=productservice%20agentservice 得到accessToken
簡化模式流程
同授權碼模式 只是少了步驟5,6 第5步登錄後就返回accessToken
客戶端授權流程
客戶端和授權中心之間的對接,跟用戶無關
密碼模式
用戶將賬戶密碼告訴客戶端
客戶端用賬戶密碼獲得授權
總結
- 常用的還是授權碼模式。
- 相比授權碼模式,簡化模式雖然降低了安全性,但也降低了使用難度
- 客戶端模式一般用於 API調用服務
- 密碼模式因為直接泄露密碼,基本沒有使用的場景
oauth2.0理解