Skip to content

[이슈] Reissue 기능 구현

이은비 edited this page Jun 3, 2023 · 1 revision

문제 상황

만료된 JWT 토큰 오류 발생 시, 서버의 Reissue API를 호출하도록 로직을 구성하였습니다. reissue 요청은 실행되나, 문제는 '잘못된 JWT 토큰입니다.' 오류가 계속해서 발생합니다.

문제 원인 분석

크롬 창의 개발자도구를 이용해 문제 원인을 분석하였습니다. 네트워크 탭에서 reissue 요청을 살펴 보았더니, 요청 헤더에 쿠키 값이 자동으로 들어가지 않는 점을 확인했습니다. 서버에서는 로그인 이후, 응답 헤더에 쿠키 값으로 리프레시 토큰을 담아 보냅니다. 이는 보안을 고려한 처리입니다. 자세한건 서버 위키를 참고해주세요.

서버에서 보낸 쿠키를 프론트에서는 요청 헤더에 담아 보내야 토큰을 재발급 받을 수 있습니다. 이 과정이 이루어지지 않아 '잘못된 JWT 토큰입니다.' 이슈가 발생하였습니다.

문제 해결

프론트에서는 proxy 처리를 통해 localhost:3000 에서 요청을 보내면 duaily.net/api/v1 ~ 으로 변환시켜줍니다. 하지만 이는 reissue에서 자동으로 응답헤더의 쿠키를 요청 헤더에 담을 수 없었습니다. 따라서 프록시 설정을 없애고 명시적으로 서버의 host를 사용함으로써 해당 이슈를 해결했습니다.