Files
vue-template/src/client/axios.ts
T
2026-09-15 17:14:38 +08:00

31 lines
677 B
TypeScript

import axios from "axios"
const axiosInstance = axios.create({
baseURL: import.meta.env.VITE_API_BASE_URL ?? "/api",
timeout: 10000,
headers: {
"Content-Type": "application/json",
},
})
axiosInstance.interceptors.request.use((config) => {
const token = localStorage.getItem("auth-token")
if (token) {
config.headers.Authorization = `Bearer ${token}`
}
return config
})
axiosInstance.interceptors.response.use(
(response) => response,
(error) => {
if (error.response?.status === 401) {
localStorage.removeItem("auth-token")
window.location.href = "/login"
}
return Promise.reject(error)
}
)
export default axiosInstance