1.token过期根据refresh_token获取新的token 重新获取数据
2.创建一个新的axios实例 【使用request防止再次进入请求拦截和请求响应而进入死循环】
3.根据请求相应的响应值 是不是401 是:说明token过期,然后进行判断store中的 user :{token:'*****',refresh_token:'******'}中的 refresh_token和user对象是否存在 ,如果不存在说明之前没有登录过,直接去登录
4.使用新创建的axios 实例对象 requestFreshToken 发送新的请求 headers中的口令携带的是 refresh_token
5.获取token之后 将值重新赋值给user中的token
6.将user重新存入store中
7.重新获取刚才因为token失效而没有获取的数据 直接使用request 参数 来自error对象中【这里保存了之前token失效的请求数据】
实现代码如下:
import axios from "axios";
import store from "@/store";
import router from "@/router";
import jsonBig from "json-bigint";
import { Toast } from "vant";
// var json = '{ "value" : 9223372036854775807, "v2": 123 }'
// // console.log(JSON.parse(json),777888);
// console.log(jsonBig.parse(json).value.toString(),88888);
const request = axios.create({
// 所有相应的数据就