@@ -6,18 +6,25 @@ import axios, {
66 AxiosRequestConfig ,
77 AxiosResponse ,
88 InternalAxiosRequestConfig ,
9+ RawAxiosRequestHeaders ,
910} from "axios" ;
1011
1112/** API 사용 전, ENV 파일을 통해 서버 연동 설정을 해주세요 */
1213const API_URL = import . meta. env . VITE_API_URL as string ;
1314
14- const baseApi = axios . create ( {
15- baseURL : API_URL ,
16- timeout : 5000 ,
15+ const headers : RawAxiosRequestHeaders = {
16+ "Content-Type" : "application/json" ,
17+ } ;
1718
18- headers : {
19- "Content-Type" : "application/json" ,
20- } ,
19+ const token = localStorage . getItem ( ACCESS_TOKEN ) ;
20+ if ( token ) {
21+ headers . Authorization = `Bearer ${ token } ` ;
22+ }
23+
24+ const axiosInstance = axios . create ( {
25+ baseURL : API_URL ,
26+ headers,
27+ withCredentials : true , // CORS 쿠키 전송을 위해 필요
2128} ) ;
2229
2330/** 개발 환경에서만 실행되논 로깅 함수 */
@@ -124,11 +131,11 @@ const onErrorResponse = (error: AxiosError | Error) => {
124131} ;
125132
126133/** 인터셉터를 설정 하고, Axios Instance를 반환하는 함수 */
127- const setInterceptors = ( axiosInstance : AxiosInstance ) : AxiosInstance => {
128- axiosInstance . interceptors . request . use ( onRequest , onErrorRequest ) ;
129- axiosInstance . interceptors . response . use ( onResponse , onErrorResponse ) ;
134+ const setInterceptors = ( instance : AxiosInstance ) : AxiosInstance => {
135+ instance . interceptors . request . use ( onRequest , onErrorRequest ) ;
136+ instance . interceptors . response . use ( onResponse , onErrorResponse ) ;
130137
131- return axiosInstance ;
138+ return instance ;
132139} ;
133140
134- export const api = setInterceptors ( baseApi ) ;
141+ export const api = setInterceptors ( axiosInstance ) ;
0 commit comments