oauth2四种受权方式小结

本文主要小结一下oauth2的四种模式的特色和适用场景。web

四种受权方式

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用于换取新tokenapi

这种模式因为没有用户参与,并且也不须要用户帐号密码,仅仅根据本身的id和密钥就能够换取新token,于是不必refresh token浏览器

小结

  • 密码模式(resource owner password credentials)(为遗留系统设计)(支持refresh token)
  • 受权码模式(authorization code)(正宗方式)(支持refresh token)
  • 简化模式(implicit)(为web浏览器应用设计)(不支持refresh token)
  • 客户端模式(client credentials)(为后台api服务消费者设计)(不支持refresh token)
相关文章
相关标签/搜索