JWT ( JSON WEB TOKEN ) 이란?

박재용·2020년 12월 7일
0

JWT는 JSON WeB Token 의 약자입니다 .
JWT는 정보를 JSON 객체 형태로 주고 받기 위한 표준규약에 따라 생성한
토큰 입니다 .

JWT 토큰 구성
JWT는 세 파트로 나누어지며 , 각 파트는 점으로 구분 합니다 .

 header(aaaaaa).payload.(bbbbbbb).signature(cccccccc)

Ex) aaaaaa.bbbbbb.ccccccc 요롷케 표현을 합니다 .

이렇게 header payload signature로 나뉜다 .

  • HEADER
    토큰의 헤더는 typ , alg 두가지 정보로 구성된다 . alg는 헤더를 암호화하는게 아닌 signature를 해싱하기위한 알고리즘을 지정한것이다.
{
    "alg": "HS256",
    "typ": "JWT"
}
  • Payload
    JWT의 내용이다 . 페이로드에있는 속성들은 클레임셋 이라고 부른다 .
    클레임셋은 JWT에 대한 내용 (토큰 생성자의 정보,생성일시등)의 값을 나타낸다

  • Signature
    점(.)을 구분자로 해서 헤더와 페이로드를 합친 문자열을 서명한 값이다.
    서명은 헤더의 alg 에 정의한 알고리즘과 시크릿키를 이용해 생성하고
    Base64 URL-Safe (?) 로 인코딩한다.
    , 헤더와 페이로드는 암호화 한 것이 아니라 JSON문자열을 base64로 인코딩 한것입니다 그러므로 누구나 디코딩한다면 헤더와 페이로드를 볼수있으므로
    누군가 JWT를 탈취하여 수정한후 서버에 보낼수있으므로 이부분을 검증하는 부분입니다 .

참고 -
https://covenant.tistory.com/201
https://meetup.toast.com/posts/239
https://mangkyu.tistory.com/56
http://www.opennaru.com/opennaru-blog/jwt-json-web-token/

profile
박재용이란 사람이 복습을 하기위해 만든 벨로그 입니다 . 잘부탁드려요

0개의 댓글