• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

jwt 질문드립니다.

22.09.18 19:20 작성 조회수 301

0

 

안녕하십니까 선생님

강의 정말 알차고 재밌게 잘 듣고 있습니다.

jwt 궁금증이 생겨 질문드려요

사용자가 로그인 시

response.addHeader("token", token);
response.addHeader("userId", userDetails.getUserId());

토큰을 발급 받게 되고, 토큰을 받고 나면 로그인한 사용자는 계속 다른 페이지 접근시

토큰을 계속 들고 다른 페이지에 이동되게 되나요?

토큰의 만료 시점은 저희가 정해놓은 시간에 따라서 결정되는건가요??

아님 세션처럼 생명주기가 있는건가요??

 

답변 1

답변을 작성해보세요.

0

안녕하세요, 이도원입니다.

JWT를 발급하게 되면, Response Header를 통해 클라이언트에게 전송됩니다. 그리고 클라이언트는 해당 JWT를 Request Header에 포함하여 서버에게 서비스를 요청하게 되고요, JWT를 서버에서 받았을 때, Token의 만기 시간(생명주기)을 체크하여 유효성 여부를 확인할 수 있습니다. 또 다른 페이지로 이동시 JWT를 가지고 이동한다고 생각하시면 되며, 세션을 사용하지는 않습니다. 클라이언트 애플리케이션이 서버가 사용하는 Application Server와 동일하지 않으며, user-service, order-service, apigateway-service 등은 모드 개별 WAS(Tomcat)로 기동되고 있기 때문에, 세션 공유를 위해 별도의 매커니즘을 추가해야 합니다. 강의에서는 세션 공유가 아닌, JWT를 계속 확인하는 방식이라고 보시면 좋을 것 같습니다. 추가로 order-servicer, catalog-service에서는 JWT 인증 체크를 하지 않고, apigateway-service에서 JWT의 유무를 판단한 다음, user-service로 요청을 전달하는 구조로 되어 있습니다.

감사합니다.