중간 유저 서비스 정리 - nhnacademy-be10-WannaB/wannab-wiki GitHub Wiki

변경사항

  • Client - Front ⇒ 쿠키
  • Front - Gateway - Back service ⇒ 헤더로 간다 JWT를
  • 근데, 그 중간에 바꿔주는 과정을 Gateway에서 할거다
    • 아니네 ㅡㅡ 프론트에서 인터셉터로 하네

이렇게 바꾼 이유는?

  1. 쿠키로 해도 되는데, 귀찮다는 거잖아. (코드로 다 쿠키를 자동으로 넣어주는 줄 알았는데 아니었다.)
  2. 어차피 내가 다 넣어줄거면 헤더로 해도 되지않나?

현재 고민되는 사항이

  1. Front에서 요청을 보냈는데 access token이 만료될 경우에 gateway에서 에러를 던지고 reissue를 통해 refresh token이 유효하다면, access token을 재발급 해주는 과정에서, Client가 보낸 요청을 어떻게 기억하고 다시 보내서 깔끔하게 처리할꺼냐?

이 고민에서 1안과 2안이 나온 것

1안

  1. 게이트웨이가 401을 던져
  2. 프론트가 그 예외를 클라이언트에게 보내
  3. JS가 기존 요청을 재요청하는 방식 fetch, axios

2안

  1. 게이트웨이가 유저서비스에게 reissue를 보내
  2. 유저서비스가 accessToken 을 발급해줘 (이때 refresh 는 안줘 원래있으니까)
  3. 게이트웨이가 그걸 받아서 accessToken을 갱신해
  4. 그다음에 자연스럽게 유저에게 던져줘
    1. 요청 결과와 함께 오는건 new access Token이라는거

그러면 AOP 는 뭐지?

  1. 게이트웨이가 페인으로 프론트로 보낸다?

그러면은 이거는 프론트입장에서는 그냥 페인클라이언트로 보낸 요청에 대한 응답이 response entity오는데

헤더에 accessToken이 있을거야 근데 이걸 브라우저에 주려면 쿠키로 구워야해

근데 그럼맨날해야하니까 그걸 aop로 하겠다