본문 바로가기
IT/javascript

JWT(JSON Web Token)란?

by 뉴코딩맨 2023. 5. 16.
JWT는 JSON Web Token의 약자로, 웹 애플리케이션 간에 정보를 안전하게 전송하기 위해 사용되는 표준입니다. JWT는 클라이언트와 서버 간의 인증과 정보 교환을 위해 사용됩니다. 이 토큰은 JSON 형식으로 인코딩되어 있으며, 서명이나 암호화를 통해 검증됩니다.
 
 

JWT 구성요소

JWT는 다음과 같이 구성됩니다
 
  • 헤더(Header): JWT의 유형과 서명 알고리즘을 포함하는 부분입니다. 헤더는 JSON 형식으로 표현되며, 일반적으로는 토큰의 유형(JWT)과 사용된 알고리즘(HS256, RS256 등)을 지정합니다.
  • 페이로드(Payload): JWT에 포함될 클레임(claim) 정보를 담고 있는 부분입니다. 클레임은 토큰에 대한 서비스 제공자, 토큰의 수신자, 토큰의 만료 시간 등의 정보를 포함할 수 있습니다. 페이로드는 사용자 정의 클레임과 표준 클레임으로 구성될 수 있습니다.
  • 서명(Signature): 헤더와 페이로드를 서명하여 토큰의 무결성을 검증하는 부분입니다. 서명은 비밀 키를 사용하여 생성되며, 헤더와 페이로드의 내용이 변경되지 않았는지 확인합니다.
 
 

JWT 특징

JWT의 주요 특징은 다음과 같습니다
 
  • 확장성: JWT는 클레임을 사용하여 필요한 사용자 정의 정보를 포함시킬 수 있습니다. 이를 통해 토큰에 추가 데이터를 저장하고 필요한 정보를 전달할 수 있습니다.
  • 자가수용(Self-contained): JWT는 필요한 모든 정보를 자체적으로 포함하고 있으므로 별도의 데이터베이스 조회나 상태 확인이 필요하지 않습니다. 이는 토큰 기반 인증 시스템을 구현하는 데 유용합니다.
  • 보안: JWT는 서명을 통해 무결성을 검증하므로 조작이 어렵습니다. 또한, 페이로드에 민감한 정보를 포함하지 않도록 주의해야 합니다.
  • 분산 환경: JWT는 클라이언트와 서버 간에 전달되므로 분산 환경에서도 사용하기 용이합니다. 서버 간의 통신에서도 유효한 인증 수단으로 사용될 수 있습니다.
 
JWT는 웹 애플리케이션의 인증, 권한 부여, 정보 교환 등 다양한 사용 사례에 사용됩니다.
 

댓글