<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에 포함할 수 있는 문자만으로 만든다.
JSON 데이터 구조를 사용하는 서명 표준으로 RFC7515이며, JSON으로 전자 서명을 하여 URL-Safe 문자열로 표현한 것.
JSON 데이터 구조를 사용하는 암호화 방법으로 RFC7516이며, JSON을 암호화하여 URL-safe문자열로 표현한 것.
JWT Structure
JWT는 dot(.)을 구분자로 3파트로 구분되어 있으며 각각의 파트를 Header
, Payload
, Signature
라 부르며 각각 필요한 정보들을 담아 보관한다.