Closed Happhee closed 2 years ago
core/localStroage.ts 로 로컬스토리지 클래스를 만든 이유가 타입땜에 그런 건가여,,? localStorage.getItem('ㅇㅇ); 요런식으로 적기 싫어서 그런줄 알았는데 그건 아닌 것 같길래욤
수고했읍니다!! 로그인 로직자체는 항상 어려워했어서 이번에 코드 보면서 좀 공부중,, 의문 드는 거 있음 물어보께!
@say-young516
core/localStroage.ts 로 로컬스토리지 클래스를 만든 이유가 타입땜에 그런 건가여,,? localStorage.getItem('ㅇㅇ); 요런식으로 적기 싫어서 그런줄 알았는데 그건 아닌 것 같길래욤
next가 ssr 구조라 localStorage 를 사용할때 아래처럼 window이걸 검증을 계속해줘야해서..! 페이지마다 하는게 귀찮을것같아서 아예 class로 뺏습니ㅏㄷ!
if (typeof window !== 'undefined') {
localStorage.setItem(key, item);
}
🔥 Related Issues
🎡 작업 내용
✅ PR Point
baseInstance.interceptors
를 사용해서 토큰의 유효성 검사를 요청때마다 진행하였습니다✨const baseInstance = axios.create({ baseURL:
/
, headers: { 'Content-Type': 'application/json', }, }); // // client side base instance (default) // // 로컬스토리지 접근이 가능하고 token이 필요한 api 호출에서 사용 baseInstance.interceptors.request.use((config) => { const headers = { ...config.headers, accessToken: LocalStorage.getItem('accessToken'), refreshToken: LocalStorage.getItem('refreshToken'), };return { ...config, headers }; });
baseInstance.interceptors.response.use((response) => { if (response.data) return response.data;
async (error: { config: any; response: { status: any } }) => { const { config, response: { status }, } = error;
}; }); export { baseInstance };
👀 스크린샷 / GIF / 링크
📚 Reference