File size: 714 Bytes
75706d4
 
3576188
 
75706d4
3576188
75706d4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import axios, { AxiosInstance, AxiosError } from "axios";

const baseURL = import.meta.env.VITE_API_URL as string;

const axiosClient: AxiosInstance = axios.create({
  baseURL: `${baseURL}/api/v1`,
});

axiosClient.interceptors.request.use((request) => {
  const auth_token = localStorage.getItem("auth_token");
  if (auth_token) {
    request.headers.Authorization = `Bearer ${auth_token}`;
  }
  return request;
});

axiosClient.interceptors.response.use(
  (response) => response,
  (error: AxiosError) => {
    if (error.response?.status === 401) {
      localStorage.removeItem("auth_token");
      window.location.href = "/signin";
    }
    return Promise.reject(error);
  }
);

export default axiosClient;