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;
|