homealone-front / backend

나홀로집에 Sever
0 stars 0 forks source link

Refresh Token API 요청 비정상적 반환 문제 #5

Open mylazysundaycat opened 1 month ago

mylazysundaycat commented 1 month ago

Description

프론트에서 (/api/token/refresh) API 요청을 했을 때 무한 요청이 되거나 응답으로 refresh token을 받는게 아니라 401 UNAUTHORIZED 을 받음.

mylazysundaycat commented 1 month ago

확인해 보니, 스프링 시큐리티 필터 체인에서 access token이 만료되었을 때 에러메세지를 반환하도록 처리해서 /api/token/refresh API 요청이 정상적으로 반환되지 않고 있음을 확인했음.

내 코드의 문제점

  1. JWT 이중 필터 체인 처리 하나는 프론트에 response로 message를 보내도록 하고 하나는 서버 콘솔창에 에러 메세지를 띄우도록 이중으로 필터 체인을 걸어놨다. 두 개 다 분리해서 만들어놨지만, 프론트에 응답 메세지를 보내고나면 해당 로직이 끝나버리기 때문에 refresh API 요청을 제대로 수행하지도 못하고 서버 콘솔창으로 오류메세지를 확인할 수 도 없어 두 번째 필터 체인 클래스가 불필요해졌다. 어떤식으로 해결할 지 고민해 봐야 할 것 같음
  2. JWT 에러 처리 서버 콘솔창으로 어떤 JWT 에러가 발생했는지 코드를 작성해놨지만, 해당 에러 처리에 대한 솔루션 코드가 비어있는 상태이다. 블로그와 티스토리 그리고 예시 프로젝트 등을 참고하고 만들어서 현업 프로젝트와 거리가 있다보니 뇌에 힘을 빼고 개발을 하다보면 이런식으로 구멍이 송송 나 있는 경우를 종종 발견할 수 있는 것 같다 (깊게 반성함) 1번 문제를 해결하고 에러 처리 후에 솔루션 코드도 객체지향적으로 잘 설계해서 채워보겠다.
mylazysundaycat commented 1 month ago

해결

  1. 이중 필터 체인 처리 해놨던 부분은 하나의 클래스로 합침.
  2. JWT 커스텀 필터에 /api/token/refresh 부분을 받을 시 다음 필터로 넘기도록 설정

24-10-24 오전 11시에 프론트와 오류 수정 협업 예정

mylazysundaycat commented 1 month ago

해결 완료