New file |
| | |
| | | COOL_API_BASE_URL = 'http://localhost:8080' |
New file |
| | |
| | | export const API_BASE_URL = import.meta.env.COOL_API_BASE_URL; |
| | | |
| | | export const TOKEN_HEADER_NAME = 'Authorization'; |
| | | |
| | | export const UN_AUTH_CODE = 403; |
| | | |
| | | |
New file |
| | |
| | | import axios from 'axios'; |
| | | import { API_BASE_URL, TOKEN_HEADER_NAME, UN_AUTH_CODE } from '@/config/setting'; |
| | | import { getToken, setToken } from './token-util'; |
| | | |
| | | const service = axios.create({ |
| | | baseURL: API_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) { |
| | | // Modal.destroyAll(); |
| | | // Modal.info({ |
| | | // title: 'Token has expired, please log in again!', |
| | | // okText: 'LOGIN', |
| | | // style: "top: 20px", |
| | | // onOk: () => { |
| | | // logout(); |
| | | // } |
| | | // }); |
| | | alert('Token has expired, please log in again!'); |
| | | // todo: logout |
| | | 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; |
New file |
| | |
| | | import { TOKEN_HEADER_NAME } from '@/config/setting'; |
| | | |
| | | export const getToken = () => { |
| | | const token = localStorage.getItem(TOKEN_HEADER_NAME); |
| | | if (!token) { |
| | | return sessionStorage.getItem(TOKEN_HEADER_NAME); |
| | | } |
| | | return token; |
| | | } |
| | | |
| | | export const setToken = (token, remember) => { |
| | | removeToken(); |
| | | if (token) { |
| | | if (remember) { |
| | | localStorage.setItem(TOKEN_HEADER_NAME, token); |
| | | } else { |
| | | sessionStorage.setItem(TOKEN_HEADER_NAME, token); |
| | | } |
| | | } |
| | | } |
| | | |
| | | export const removeToken = () => { |
| | | localStorage.removeItem(TOKEN_HEADER_NAME); |
| | | sessionStorage.removeItem(TOKEN_HEADER_NAME); |
| | | } |
| | |
| | | server: { |
| | | host: '0.0.0.0' |
| | | }, |
| | | envPrefix: "COOL_", |
| | | }) |