1. 程式人生 > >oauth2.0理解

oauth2.0理解

edi tro code 中心 author 步驟 不用 模式 提供商

Oauth2的4種模式:
  • 授權碼(Authorization)模式(獲取code、code換取access_token)
  • 簡化(Impilict)模式(直接換取access_token,基本不用)
  • 密碼(Resource Owner Password)模式(客戶端向用戶索取賬號密碼,然後客戶端向服務端索取授權,基本不用)
  • 客戶端(Client)模式(客戶端以自己的名義要求"服務提供商"提供服務;場景:提供接口服務)

授權碼模式流程

  1. 註冊客戶端

    • clientId = 1
    • secret=secret
  2. 註冊用戶
  3. 請求授權碼

    • http://localhost:8080/oauth2-server/authorize?client_id=client_id&client_secret=client_secret&response_type=code&redirect_uri=redirect_uri&scope=productservice%20agentservice
  4. 跳轉至授權登錄頁面
  5. 登錄後,回調到redirect_uri?code=xxxxx&scope=productservice%20agentservice
  6. 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理解