본문 바로가기

개발/Spring | Spring Boot

JSON Web Token(JWT)란?

1. JWT는 JSON Web Token의 약어로 JSON 형식의 데이터를 저장하는 문자열이다.

2. JWT는 헤더, 페이로드, 시그니쳐로 구성되어 있으며 각 부분은 '.'으로 구분된다.

  • 헤더 : 토큰 종류와 해시 알고리즘 정보
  • 페이로드 : 토큰의 내용물
  • 시그니처 : 변조 여부 확인 등
  • ex) eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyLsnbTrpoQiOiJZZW9uIiwi7JyE7LmYIjoiQmxvZyJ9.wuqbk-b01GU5txSpqPUDk-cagjA_mHJoZFafqZgxwNA

3. JWT는 아래와 같이 https://jwt.io에서 토큰에 담긴 내용을 확인할 수 있다. 때문에 민감한 정보를 토큰에 담으면 안 된다.

 

4. JWT는 비밀키를 모르면 변조가 불가능하다고 한다. 때문에 내용물을 믿고 사용할 수 있다. 

5. JWT는 용량이 크기 때문에 매 요청 시 토큰이 오고 가는 경우 데이터 양이 증가할 수 있다.