[TIL]JWT란?

Kyeong_Bong·2022년 6월 6일
0

TIL

목록 보기
2/18
post-thumbnail

JWT는 JSON Web Token 의 줄임말로 JSON 객체를 사용하여 정보를 안전성 있게 전달해줍니다.

JWT 는 C, Java, Python, JavaScript 등 대부분의 프로그래밍 언어에서 지원됩니다.

JWT는필요한 모든 정보를 자체적으로 지니고 있습니다. JWT(JSON Web Token) 시스템에서 발급된 토큰은

토큰에 대한 기본정보, 전달 할 정보 (ex : 로그인 정보 등) 그리고 토큰이 검증됐다는것을 증명해주는 signature 를 포함하고있습니다.

JWT의 구성

1.헤더(HEADER) : 토큰의 종류, 해시 정보 알고리즘을 담는 곳
2.페이로드(PAYLOAD) : 실질적인 토큰의 내용물을 인코딩하여 담는 곳
3.시그니처(SIGNATURE) : 일련의 문자열로서, 이것을 통해 토큰이 변조되었는지를 확인 JWT는 넓은 범용성, 무결성 보장, 필요한 값을 자체 포함할 수 있는 성질 때문에 회원 인증, 정보 교류 등에서 자주 사용됩니다.

JWT의 장점

  1. 이미 토큰 자체가 인증된 정보이기 때문에 세션 저장소와 같은 별도의 저장소가 필요하지 않다.
  2. 세션과 다르게 클라이언트의 상태를 서버가 저장해 두지 않아도 된다
  3. signature을 공통 키 개인 키 암호화를 통해 막아두었기 때문에 데이터의 보완성이 늘어남
  4. 다른 서비스에 이용할 수 있는 공통적인 스펙으로써 사용가능

JWT의 단점

  1. 쿠키, 세션과는 다르게 base64 인코딩을 통한 정보를 전달하므로 전달량이 많다.
  2. payload에는 암호화가 되어있지 않기 때문에 민감 정보를 저장할 수 없다
  3. 토큰이 탈취당하면 만료될 때까지 대처가 불가능하다
profile
Junior Developer🔥

0개의 댓글