无感知刷新TOKEN过期
关于TOKEN相关参数
access_token:获取需要授权的接口数据
expires_in: access_token过期时间
refresh_token: 刷新获取新的 access_token
实现刷新TOKEN方案
方法一
- 在请求发起前拦截每个请求,判断token的有效时间是否已经过期,若已经过期,先刷新token,需要把保存失败的请求遍历重新请求,请求成功后进行重置。
- 优点:节省请求、流量
- 缺点:需要后端额外提供一个token过期时间的字段,如果使用本地时间判断,若本地时间被篡改,特别是本地时间比服务器时间慢时,拦截会失败。
方法二
- 在拦截返回后的数据,先发起请求,接口返回过期后,先刷新token,需要把保存失败的请求遍历重新请求,请求成功后进行重置。
- 优点:不需要额外的字段,不需要判断时间。
- 缺点:耗请求、流量
axios处理
1 | const request = axios.create({ |