• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

강의 완독하고 궁금증이 생겨 질문 드립니다.

21.06.29 15:58 작성 조회수 126

1

안녕하세요. 먼저 좋은 강의 올려주신점에 감사인사 드립니다.
다름이 아니라 강의 시작부분에 선생님께서 jwt가 실무에서 사용되기에는 몇가지 고려할 사항들이 있다고 하셨는데
고려할 사항들이 어떤 부분들을 말하시는건지 간략하게 알 수 있을까요?

답변 1

답변을 작성해보세요.

2

안녕하세요 준호님! 

질문 남겨주셔서 감사합니다

고려해야될 사항이라는 것은 해당 시스템의 요구사항에 따라 수많은 사항들이 생길 것 같다고 생각합니다.

가장 간단한 예를 든다면 

가령 "시스템은 사용자에게 발급된 토큰 중 특정 토큰을 지정하여 사용을 중지시킬 수 있다" 라는 요구사항이 있다고 한다면 

토큰의 만료시간만 가지고 해당 요구사항을 충족시킬 수는 없겠죠. 그때는 서버사이드에서 해당 요구사항을 충족하기 위한 추가 개발들을 해야할 것 이라고 생각이 듭니다.

이 요구사항을 충족하기 위해 몇가지 생각해보면 아래와 같은 방법들이 있을 것 같습니다.

 - 권한 DB의 Version 정보를 관리해서 권한이 수정되면 Version을 변경하고 JWT 내의 Version 정보와 비교해서 틀리면 Update 
 - JWT 만료 날짜를 짧게 유지한다.

 - 토큰을 Redis 혹은 DB 같은곳에 저장해놓고 권한이 변경되면 해당 토큰을 업데이트 대상 토큰으로 저장하여 놓고 권한이 필요한 API를 요청할 시 업데이트 대상 토큰을 검증하는 필터를 구현하여 업데이트

 - JWT 페이로드에 발급 시간을 저장해 놓고 권한이 변경된 시간과 비교 업데이트 

일단은 JWT의 기초 지식에 대해 먼저 습득하신 후에 실제 본인만의 서비스를 만들어서 적용해보시길 추천드립니다. :)