import axios from 'axios'; import { PREFIX_BASE_URL, TOKEN_HEADER_NAME, UN_AUTH_CODE } from '@/config/setting'; import { getToken, setToken, removeToken } from './token-util'; const service = axios.create({ baseURL: PREFIX_BASE_URL }); /** * pre */ service.interceptors.request.use( (config) => { const token = getToken(); if (token && config.headers) { config.headers[TOKEN_HEADER_NAME] = token; } return config; }, (error) => { return Promise.reject(error); } ); /** * post */ service.interceptors.response.use( (res) => { if (res.data?.code === UN_AUTH_CODE) { // alert('Token has expired, please log in again!'); removeToken(); return Promise.reject(new Error(res.data.message)); } else { const token = res.headers[TOKEN_HEADER_NAME.toLowerCase()]; if (token) { setToken(token); } return res; } }, (error) => { return Promise.reject(error); } ); export default service;