为了给用户一个流畅的体验, token 过期后需要重新请求新的 token 替换过期的 token
前端在请求接口时,和后端定义好了,如果状态码为 401 ,则表明 token 过期,需要前端请求新的 token
大概流程如下:
1.用户登录之后,后端会返回两个 token ,分别为 accessToken 和 refreshToken 存储到 Storage
平时请求数据时,请求头使用 accessToken 来发送接口
2.当返回401 token 过期后, 我们通过接口向后端获取新的 token ,请求参数为 refreshToken
3.我们拿到新的 accessToken 和 refreshToken 之后, 替换掉之前的 Storage 中存储的 token
4.同时还要将我们报 401 的哪个接口 ,使用新的 accessToken ,重新请求一次, 拿到数据,实现无痛刷新 token
5.如果后端返回的新的 token 也无法使用,表明需要重新登录,跳到登录页(这一步可以灵活使用,我个人用的是一个路由插件配合使用的: https://ext.dcloud.net.cn/plugin?id=578)
配合uni-app的插件进行使用和实现:
到uni-app的插件市场下载封装的request网络请求,按照文档配置到自己的项目上
配置好后修改 vmeitime-http 文件夹下的 index.js 文件
再修改 vmeitime-http 文件夹下的 interface.js 文件,将401状态暴漏出来
如果看到这里还是看不明白,那么请看我的源码,请注意我使用了两个插件,