31 lines
1.1 KiB
TypeScript
31 lines
1.1 KiB
TypeScript
import axios from 'axios'
|
|
|
|
const api = axios.create({
|
|
baseURL: import.meta.env.VITE_API_BASE_URL,
|
|
timeout: 10000,
|
|
})
|
|
|
|
api.interceptors.request.use((config) => {
|
|
const token = localStorage.getItem('token')
|
|
|
|
if (token) {
|
|
config.headers.Authorization = `Bearer ${token}`
|
|
}
|
|
const cookies = `directus_session_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjA2ZGM5MGY3LWUzY2YtNGY1Ny04N2VjLTM4ZDhhYzJjNTNjOSIsInJvbGUiOm51bGwsImFwcF9hY2Nlc3MiOnRydWUsImFkbWluX2FjY2VzcyI6dHJ1ZSwic2Vzc2lvbiI6ImQ1UzhTVGN6enh5YWJYOEdkR0N0UDFxYU9Ud1VIamdLRWEtR2ZpYXlOczZxcUQ1MnlacS1lWGh5clE3TUxfeHoiLCJpYXQiOjE3NjkzOTMwMzYsImV4cCI6MTc2OTQ3OTQzNiwiaXNzIjoiZGlyZWN0dXMifQ.p-Di4C3e6bmSp-46fIhGv6HH_cq3hQRA_XcfXJLAiIA; _dd_s=logs=1&id=be53286e-881e-490b-aae1-88555740b7fb&created=1769393024176&expire=1769393960283`
|
|
if(cookies){
|
|
config.headers.Cookie = cookies
|
|
}
|
|
|
|
return config
|
|
})
|
|
|
|
api.interceptors.response.use(
|
|
(response) => response,
|
|
(error) => {
|
|
// centralized error
|
|
console.error('API Error:', error.response)
|
|
return Promise.reject(error)
|
|
}
|
|
)
|
|
|
|
export default api |