인프런 커뮤니티 질문&답변

앙빙빙님의 프로필 이미지
앙빙빙

작성한 질문수

Spring Boot JWT Tutorial

JWT 소개, 프로젝트 생성

52초쯤 말씀해주신 고려해야할 사항 질문

해결된 질문

작성

·

212

1

안녕하세요 :)

52초쯤 JWT를 적용함에 있어서 몇가지 고려해야할

사항들을 잘 대응하면 대규모 프로젝트에서도 적용할 수 있다고 하셨는데요!

고려해야될 사항을 좀 더 추가로 설명을 해주시면

감사하겠습니다!

답변 1

3

정은구님의 프로필 이미지
정은구
지식공유자

안녕하세요 앙빙빙님 :) 

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

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

가장 간단한 예를 든다면 

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

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

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

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

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

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

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

앙빙빙님의 프로필 이미지
앙빙빙
질문자

친절한 설명 감사합니다 :) b

앙빙빙님의 프로필 이미지
앙빙빙

작성한 질문수

질문하기