-
[ERR]'AxiosHeaders | Partial<RawAxiosHeaders & MethodsHeaders & CommonHeaders>' 형식에 'Authorization' 속성이 없습니다.ts(7053)Next.js 2023. 1. 16. 13:45728x90
axios 1.2.2버전 이슈
instance.interceptors.request.use((config:AxiosRequestConfig) => { const accessToken = Cookies.get('accessToken'); if (config.headers && accessToken) { config.headers!['Authorization'] = `Bearer ${accessToken}`; } return config; });
보통 이렇게 axios interceptors를 이용해서 config header에다가 accessToken을 넣어주는데 2022-01-16일자로 axios를 설치 하게 되면 1.2.2가 설치 되어서 원래 사용하던대로 사용하니까 에러가 발생했다. 아래에 axios 1.2.2에 대한 이슈를 보면 2주전부터 발생한걸로 보이며 1.2.1 버전에선 발생하지 않는것으로 보인다.
[해결방법1]
axios 버전은 1.2.1로 다운그레이드 한 뒤에 npm install로 다시 설치 하고 사용 하면 잘된다.
[해결방법2]
위처럼 쓰기는 싫으니까 코드를 수정.
import axios, { AxiosHeaders, AxiosRequestConfig } from 'axios'; ...중략... instance.interceptors.request.use((config:AxiosRequestConfig) => { const accessToken = Cookies.get('accessToken'); //자신이 토큰 가져오는방식 if (config.headers && accessToken) { config.headers = { ...config.headers } as AxiosHeaders; config.headers.set('Authorization', accessToken); } return config; });
err 발생함
TypeError:config.headers.set is not a function
import axios, { AxiosHeaders, AxiosRequestConfig } from 'axios'; ...중략... instance.interceptors.request.use((config:AxiosRequestConfig) => { const accessToken = Cookies.get('accessToken'); //자신이 토큰 가져오는방식 (config.headers as AxiosHeaders).set( 'Authorization', `Bearer ${accessToken}`, ); return config; });
이렇게 수정해줘야 잘됨.
해당 axios 이슈 https://github.com/axios/axios/issues/5416
728x90'Next.js' 카테고리의 다른 글
Nextjs와 nginx 사용시 _next/webpack-hmr 에러 발생 (0) 2023.08.08 나중에 정리 할거 (0) 2023.01.29 Nextjs 보일러 프로젝트 생성 뼈대 (0) 2023.01.10 tsconfig.json 설정 (0) 2023.01.10 Nextjs에서 Nestjs로 accessToken header로 요청할때 오류 (0) 2022.12.26