중간 유저 서비스 정리 - nhnacademy-be10-WannaB/wannab-wiki GitHub Wiki
변경사항
- Client - Front ⇒ 쿠키
- Front - Gateway - Back service ⇒ 헤더로 간다 JWT를
- 근데, 그 중간에 바꿔주는 과정을 Gateway에서 할거다
- 아니네 ㅡㅡ 프론트에서 인터셉터로 하네
이렇게 바꾼 이유는?
- 쿠키로 해도 되는데, 귀찮다는 거잖아. (코드로 다 쿠키를 자동으로 넣어주는 줄 알았는데 아니었다.)
- 어차피 내가 다 넣어줄거면 헤더로 해도 되지않나?
현재 고민되는 사항이
- Front에서 요청을 보냈는데 access token이 만료될 경우에 gateway에서 에러를 던지고 reissue를 통해 refresh token이 유효하다면, access token을 재발급 해주는 과정에서, Client가 보낸 요청을 어떻게 기억하고 다시 보내서 깔끔하게 처리할꺼냐?
이 고민에서 1안과 2안이 나온 것
1안
- 게이트웨이가 401을 던져
- 프론트가 그 예외를 클라이언트에게 보내
- JS가 기존 요청을 재요청하는 방식 fetch, axios
2안
- 게이트웨이가 유저서비스에게 reissue를 보내
- 유저서비스가 accessToken 을 발급해줘 (이때 refresh 는 안줘 원래있으니까)
- 게이트웨이가 그걸 받아서 accessToken을 갱신해
- 그다음에 자연스럽게 유저에게 던져줘
- 요청 결과와 함께 오는건 new access Token이라는거
그러면 AOP 는 뭐지?
- 게이트웨이가 페인으로 프론트로 보낸다?
그러면은 이거는 프론트입장에서는 그냥 페인클라이언트로 보낸 요청에 대한 응답이 response entity오는데
헤더에 accessToken이 있을거야 근데 이걸 브라우저에 주려면 쿠키로 구워야해
근데 그럼맨날해야하니까 그걸 aop로 하겠다