Untitled

mail@pastecode.io avatarunknown
typescript
a month ago
838 B
2
Indexable
Never
import axios from 'axios';

export const API_URL = '/';
export const REDIRECT_URL = '/';

export const axiosInstance = axios.create({
    baseURL: API_URL,
    withCredentials: false,
    headers: {
        'Content-Type': 'application/json',
    },
});

axiosInstance.interceptors.request.use(
    async config => {
        const token = localStorage.getItem('token');

        if (token) {
            config.headers.Authorization = `Bearer ${token}`;
        }
        return config;
    },
    error => {
        return Promise.reject(error);
    },
);

axiosInstance.interceptors.response.use(
    response => response,
    error => {
        if ([401, 403].includes(error?.response?.status)) {
            window.location.href = REDIRECT_URL;
        }
        return Promise.reject(error);
    },
);

export default axiosInstance;