import axiosOriginal from "axios"; import { useAuth } from "~/composables/api/auth/useAuth"; import { API_ENDPOINTS } from "~/constants"; export default defineNuxtPlugin(() => { const config = useRuntimeConfig(); const { token } = useAuth(); const axios = axiosOriginal.create({ baseURL: config.public.API_BASE_URL, }); axios.interceptors.request.use((config) => { if ( !config.url?.includes(API_ENDPOINTS.auth.signin) && !config.url?.includes(API_ENDPOINTS.account.send_otp) ) { config.headers.Authorization = `Bearer ${token.value}`; } return config; }); axios.interceptors.response.use((response) => { return response; }, function(error) { if (error.status === 401) { logout(); } return Promise.reject(error); }); return { provide: { axios } }; });