[JWT] JWT 구조

호준·2022년 4월 7일
0

JWT

목록 보기
1/1
post-thumbnail

🚩JWT란?

JWT(JSON Web Token)는 정보를 JSON 객체로 안전하게 전송하기 위한 독립적인 방식
디지털 서명이 되어있는 정보이기 때문에 신뢰할 수 있는 정보이다.

🚩JWT 구조

  • [Header].[Payload].[Signiture] 로 구성되어 있다.
  • Header : 두가지 정보를 가지고 있다.
    1. typ(타입) : 토큰의 타입을 지정 (ex, JWT)
    1. alg: Hashing Alogorithm 지정 (ex, HMAC SHA256, RSA)
  • Payload(정보)
    1. 비공개 클레임 : 보통 클라이언트와 서버와 협의하에 사용되는 클레임 이름( 클레임이란? key와 value의 한쌍으로 이루어진 조각)
    ex) "username" : "helloworld"
    "userId" : "1231231232"
  • signiture(서명)
    header를 base64로 암호화 값 + "." + payload를 base64로 암호한 값, secret 값을 HMAC SHA256으로 암호화한 값이다.
    (*Base64 : 암호화/복호화를 할 수 있는 암호이다.)
    (*secret : 서버만 알고 있는 정보)

🚩JWT 장점

  • 트래픽 대한 부담이 낮음
  • 독립적인 JWT
  • 별도의 인증 저장소가 필요 없다.
  • URL 파라미터와 헤더로 사용
  • REST 서비스로 제공 가능
  • 내장된 만료

🚩JWT 단점

  • stateless, JWT는 상태를 저장하지 않기 때문에 한번 만들어지면 제어가 불가능하다. 즉, 토큰을 임의로 삭제하는 것이 불가능하므로 만료 시간을 꼭 넣어주어야 한다.
  • 토큰 자체에 정보를 담고 있으므로 독이 될 수도 있다.

🚩참고

메타코딩 유튜브
메타코딩 유튜브를 참고하였습니다.

profile
도전하자

0개의 댓글