// fetchCall.ts
// (기존) 1. axiosInstance 생성
const accessToken = getCookie('accessToken')
// 쿠키 값을 읽고 axiosInstance 생성
const getAxiosInstance = (baseURL: string | undefined, TOKEN:string) => {
if (!baseURL) {
throw new Error('Base URL is not defined.')
}
return axios.create({
baseURL,
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${TOKEN}`,
},
})
}
export const axiosInstance = getAxiosInstance('/usports',accessToken)
// (기존) 2. axios 기본 토큰 설정
export const setHeaderToken = (token: string) => {
axios.defaults.headers.common.Authorization = `Bearer ${token}`
}
보시다시피 기존 코드에는 axios interceptor을 사용하지 않았다
import axios from 'axios'
import { cookies } from 'next/headers'
axios.interceptors.request.use(
(config) => {
const cookieStore = cookies()
const accessToken = cookieStore.get('connect.sid')
config.headers['Authorization'] = `Bearer ${accessToken}`
return config
},
(error) => {
return Promise.reject(error)
},
)
//...중략
// fetchCall.ts
axiosInstance.interceptors.request.use((config) => {
const accessToken = getCookie('accessToken')
config.headers['Authorization'] = `Bearer ${accessToken}`
return config
})
허무하지만 이제 로그인 직후 텅 빈 피드를 안 봐도 돼서 정말 기쁘다 ^^!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!