What is JWT??

BE_{Potato.}·2022년 11월 22일
0

JWT. 풀어서 쓰면 JSON web Token.
이것이 무엇인지 알아보자.

JWT =
클라이언트와 서버 간에 안전하게 정보를 공유하기 위해 사용되는 개방형 표준.
유저를 인증하고 식별하기 위한 토큰기반 인증.

이 JWT는

토큰 자체에 사용자의 권한 정보나 서비스를 이용하기 위한 정보가 포함된다.

라는 핵심적인 특징을 가지고 있다. 데이터가 많아지면 토큰이 커질 수 있고, 한번 토큰을 발급하면 사용자 정보를 바꿔도 재발급하지 않으면 반영되지 않는다는 점이 있다.

먼저, 이것의 구조를 한번 살펴보면...

Header, Payload, Signature로 이루어져 있다.

  • Header : JWT에서 사용될 타입과 해시 알고리즘의 종류가 담김.
  • Payload: 서버에서 첨부한 사용자 권한 정보와 데이터가 담김.
  • Signature: Header와 Payload를 Base64 URL-safe Encode를 한 후 Header에 명시된 해시함수를 적용하고, 개인 키로 서명한 전자서명이 담김. 이 전자서명은 JWT가 신뢰할 수 있는 토큰인지에 대한 보증수표이다.

이 JWT는 최근 웹서비스에서 넓게 쓰이며 규격이 정해져 있어서 다양한 웹앱에서 호환성이 좋다. 그리고 데이터를 자체적으로 가지고 있어서 서버의 부담이 줄어들 수 있는 것이 장점이다.
대신 Payload가 많아지면 토큰이 커져 서버에 부담이 갈 수 있고, 토큰 재발급 전까지 사용자 정보 갱신이 적용이 안 되는 문제가 있다.
이상으로 JWT에 대해 알아보는 시간을 가졌다!

#출처:https://pronist.dev/143

profile
항상 '기본'을 중요시하는 예비 백엔드개발자입니다!

0개의 댓글