request.js 1.16 KB
import axios from "axios";
import Helper from "./helper";
import Store from "../store";
import tim from "../tim";

const service = axios.create({
  baseURL: process.env.VUE_APP_API_URL,
  // withCredentials: true, // send cookies when cross-domain requests
  timeout: 5000, // request timeout
});

service.interceptors.request.use(
  (config) => {
    config.headers["Authorization"] = "Bearer " + Helper.getToken();
    config.headers["Accept"] = "application/json";
    return config;
  },
  (error) => {
    return Promise.reject(error);
  }
);

service.interceptors.response.use(
  (response) => {
    switch (response.data.code) {
      case 200:
        return response.data;
      case 401:
        Store.commit("showMessage", {
          type: "error",
          message: "身份信息已失效,请重新登录",
        });
        tim.logout().then(() => {
          Store.commit("user/toggleIsLogin");
          Store.commit("user/stopComputeCurrent");
          Store.commit("user/reset");
        });
        break;
      default:
        return Promise.reject(response.data);
    }
  },
  (error) => {
    return Promise.reject(error);
  }
);

export default service;