无感刷新 token
//首先需要在响应拦截里面 加一个 code反馈码的判断 是401就调用刷新token的方法
//响应拦截
api.interceptors.response.use(
(response: any) => {
if (response.data.code == 200) {
done();
return response;
} else if (response.data.code == 401) {
return tokenss(response); //这个我单独封装了tokenss方法 需要传递response返回值回来
}
},
//返回值与后端规定 最新token 和刚刚 发送请求的信息 是哪个请求地方 和携带的东西
//例如response 返回的是: 就是401返回的数据
//method: 'post', url: '/tokenOut', data: { token: '11111' }
//封装的tokenss 处理:
import api from "@/api"; //引入创建的路由实例
export default (response: any) => { //response是返回的数据
sessionStorage.setItem("token", response.data.conf.data.token);
//把跟着401一起返回的最新token马上存本地
//再调用上一个接口 上一个接口信息应该跟着一起返回
let config = response.data.conf;
//后端返回上一个发送的请求数据
if (config.method == "post") { //判断是什么请求
return api({method: config.method, url: config.url, data: config.data});
} else {
//其他请求 因为传值有一些不一样 所以要区分
return api({url: config.url, method: config.method, params: config.data});
}
};
api({})这个也是调取接口 具体配置可以百度 axios JSON请求配置
和
xxx.get("xxx",params:{xxx}) 一样
标签:data,无感,method,token,api,刷新,config,response
From: https://www.cnblogs.com/yitiaogua/p/17509817.html