0%

OAuth2介绍

总体流程

登陆

  • 使用username + password进行登录
  • 返回授权信息:
    1
    2
    3
    4
    5
    6
    {
    "refresh_token": "刷新access token时需要使用的",
    "acess_token": "请求凭证",
    "expires_in": "过期时间",
    "token_type": "",
    "user_id": "用户ID",

刷Token

什么是refresh_token?

当access_token过期后,需要获取一个新的access_token,在获取新的access_token时需要一个验证令牌,这个验证令牌就是refresh_token

什么是access_token

  • 在访问部分API时需要用户是已经登陆状态
  • 后端是通过access_token来验证用户是否登陆的
  • access_token一般放在HTTP请求头的Authorization属性上
  • access_token有一个有效期,这个有效期放在expores_in属性上

为什么要刷Token

  • 使用部分的API时是需要access_token进行验证用户信息
  • access_token有有效时长
  • access_token过了有效期
  • 为什么不直接使用username + password作为凭证来验证用户信息
  • 这样做相对来说不安全,每次请求时都要把用户名和密码带上,很容易泄露密码

怎么刷

  • 用户必须是已经登陆状态的
  • 在正常请求后端API时返回的HTTP状态码是401

刷Token

  • 拦截请求,不让请求结果返回给上层用户逻辑
  • 使用前端存储的refresh_token调用后端接口
  • 后端返回新的access_token
  • 刷token完成
  • 重新请求之前401的接口