JSON Web Token 의 약자로 유저를 인증하고 식별하기 위한 토큰 기반 인증이다. 토큰은 세션과 달리 클라이언트에 저장되기 때문에 서버의 부담을 덜 수 있다.

구성

https://i2.wp.com/www.opennaru.com/wp-content/uploads/2018/08/JWT_Stacks.png?fit=1200%2C300

https://i2.wp.com/www.opennaru.com/wp-content/uploads/2018/08/JWT_Stacks.png?fit=1200%2C300

Header는 토큰의 타입과 해시 암호화 알고리즘으로 구성되어 있습니다. 첫째는 토큰의 유형 (JWT)을 나타내고, 두 번째는 HMAC, SHA256 또는 RSA와 같은 해시 알고리즘을 나타내는 부분입니다.

Payload는 토큰에 담을 클레임(claim) 정보를 포함하고 있습니다. Payload 에 담는 정보의 한 ‘조각’ 을 클레임이라고 부르고, 이는 name / value 의 한 쌍으로 이뤄져있습니다. 토큰에는 여러개의 클레임 들을 넣을 수 있습니다.

클레임의 정보는 등록된 (registered) 클레임, 공개 (public) 클레임, 비공개 (private) 클레임으로 세 종류가 있습니다.

마지막으로 Signature는 secret key를 포함하여 암호화되어 있습니다.

JWT 흐름

https://www.javainuse.com/62-12-min.JPG

https://www.javainuse.com/62-12-min.JPG