개요

<aside> 💡 *JWT(JSON Web Token)은 선택적 서명 및 선택적 암호화를 사용해 데이터를 만들기 위한 인터넷 표준이다.

</aside>

<aside> 💡 *JSON Object들을 HTTP Authorization 헤더나 URI query 파라미터를 통해 전송될 수 있는 base6로 인코딩된 문자열.

</aside>

JWT는 JSON 포맷을 이용해 인증정보와 같은 사용자에 대한 정보를 저장하는 Claim 기반의 Web Token이며 RFC7519 표준이다.

JWT는 서버와 클라이언트간에 정보를 주고 받을 때 HTTP Request Header에 JSON 토큰을 넣은 후 서버는 별도 인증과정없이 헤더에 포함되어 있는 JWT 정보를 통해 인증 및 인가과정을 수행한다. 이 때 JSON 데이터는 URL-Safe(*URL에 포함할 수 없는 문자를 포함하지 않는 것) 하도록 URL에 포함할 수 있는 문자만으로 만든다.

🚀JWS(JSON Web Signature)

JSON 데이터 구조를 사용하는 서명 표준으로 RFC7515이며, JSON으로 전자 서명을 하여 URL-Safe 문자열로 표현한 것.

🚀JWE(JSON Web Encryption)

JSON 데이터 구조를 사용하는 암호화 방법으로 RFC7516이며, JSON을 암호화하여 URL-safe문자열로 표현한 것.

구조


JWT Structure

JWT Structure

JWT는 dot(.)을 구분자로 3파트로 구분되어 있으며 각각의 파트를 Header, Payload, Signature라 부르며 각각 필요한 정보들을 담아 보관한다.