无感刷新token

无感刷新 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})  一样
posted @ 2023-06-27 20:02  一条瓜  阅读(157)  评论(0)    收藏  举报