JWT(JSON Web Token)은 웹 표준으로 클라이언트와 서버 간 정보를 안전하게 전송하기 위해 사용됩니다. json형태로 데이터를 전송하기 때문에 가볍고 자유롭게 사용할 수 있습니다.
JWT는 Header, Payload, Signature 세 부분으로 구성됩니다.
Header
JWT의 타입과 사용된 암호화 알고리즘 정보가 담겨있습니다.
Payload
실제 전송할 데이터가 들어가는 부분입니다. 클레임 정보라고도 부릅니다. 클레임 정보는 이름과 값의 쌍으로 이루어져 있습니다.
registered claim, public claim, private claim으로 구분됩니다.
Signature
Header와 Payload를 조합한 문자열을 서버에서 가지고 있는 비밀키를 이용해 해시값을 생성하고 이 값을 통해 JWT가 변조되지 않았는지 검증합니다.
JWT는 토큰 방식으로 사용되며, 클라이언트가 로그인 등의 인증 요청을 보내면 서버에서는 JWT를 생성해 클라이언트에게 전달합니다. 이후, 클라이언트는 JWT를 가지고 인증이 필요한 요청에 대해 서버에 보내게 되며, 서버에서는 JWT의 Signature를 검증해 인증을 수행합니다. 이를 통해 JWT는 클라이언트와 서버 간의 안전한 인증 및 정보 전송에 사용됩니다.