JWT는 "JSON Web Token"의 약자로, 웹 기반의 토큰 기반 인증 및 권한 부여 시스템을 구현하는 데 사용되는 오픈 표준입니다. JWT는 정보를 안전하게 전달하기 위한 간단한 방법을 제공하며, 주로 웹 및 모바일 애플리케이션에서 사용되며 API 요청의 인증 및 권한 부여에 활용됩니다.
JWT는 세 부분으로 구성되어 있습니다:
1. Header: 토큰의 유형 및 해싱 알고리즘 정보가 포함되어 있습니다.
2. Payload: 실제 정보가 JSON 형식으로 포함되어 있으며, 클레임(claim)이라는 속성들로 이루어져 있습니다. 클레임은 토큰의 발급자, 유효 기간, 사용자 ID 등을 포함할 수 있습니다.
3. Signature: Header와 Payload를 기반으로 생성되며, 토큰의 변조 여부를 확인하는데 사용됩니다. 서버는 이 시그니처를 사용하여 토큰의 유효성을 검증합니다.
JWT의 작동 방식은 다음과 같습니다:
JWT의 장점은 간단하고 경량적인 구조로 정보를 전달할 수 있다는 점입니다. 또한 토큰 자체에 필요한 정보가 포함되어 있으므로, 별도의 세션 상태를 유지할 필요가 없어집니다. 그러나 JWT를 사용할 때에는 보안에 주의해야 하며, 토큰의 유효 기간 및 안전한 키 관리 등을 신중하게 다뤄야 합니다.