请求拦截,响应拦截

 

 安装可以解析eleToken 的模块

yarn add jwt-decode -D

使用解析模块

import jwt_decode from 'jwt-decode'

const decoded = jwt_decode(eleToken)
//请求拦截
axios.interceptors.request.use(
  config => {
    if(localStorage.eleToken){ //如果我的eleToken存在
      // 设置统一的请求header
      config.headers.Authorization = localStorage.eleToken //授权
    }
    return config;
  },
  error => {
    return Promise.reject(error);
  }
);

//响应拦截
axios.interceptors.response.use(
  response => {
    return response;
  },
  error => {
    // 判断返回状态是不是401,如果是401代表当前的eleToke以及失效,需要移除localStorage里面的eleToken
    let {status} = error.response //获取错误状态码
    if(status == 401){
      message.error("当前登录(eleToken)已失效,请重新登录")
      localStorage.removeItem("eleToken")//清除eleToken
      this.router.push("/Login")//让用户从新回到登录页面
    }
    return Promise.resolve(error.response);
  }
);

 

原文地址:https://www.cnblogs.com/tlfe/p/11567620.html