oauth2.0理解

Oauth2的4种模式:

  • 受权码(Authorization)模式(获取code、code换取access_token)
  • 简化(Impilict)模式(直接换取access_token,基本不用)
  • 密码(Resource Owner Password)模式(客户端向用户索取帐号密码,而后客户端向服务端索取受权,基本不用)
  • 客户端(Client)模式(客户端以本身的名义要求"服务提供商"提供服务;场景:提供接口服务)

受权码模式流程

  1. 注册客户端安全

    • clientId = 1
    • secret=secret
  2. 注册用户
  3. 请求受权码ide

  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调用服务
  • 密码模式由于直接泄露密码,基本没有使用的场景
相关文章
相关标签/搜索