REFERENCE:

[10분 테코톡] 🎡토니의 인증과 인가

[무료] Spring Boot JWT Tutorial - 인프런 | 강의

Spring Security와 JWT 사용 예제

[Server] JWT(Json Web Token)란?

JWT란?


JWT 개념

1) JWT(Json Web Token)이란?

JWT(Json Web Token)란 Json 포맷을 이용하여 사용자에 대한 속성을 저장하는 ***Claim 기반의 Web Token**이다. JSON 객체를 사용하여 가볍고 자가수용적인 (self-contained) 방식으로 정보를 안전성 있게 전달해주기 위한 토큰이다. 주로 회원 인증이나 정보 전달에 사용된다.

Untitled

일반적으로 클라이언트가 JWT를 static한 변수와 로컬 스토리지에 저장하게 되는데, static 변수에 저장하는 이유는 HTTP 통신을 할 때마다 JWT를 담아서 전달해줘야 하는데, 이걸 로컬 스토리지에 저장해서 담으면 오버헤드가 발생하기 때문이다.

<aside> 💡 Json에 대해서 모른다면? JSON의 모든 것

</aside>

클레임(Claim)이란 무슨 뜻인가요?

토큰은 크개 일반 토큰 기반의 인증과 클레임(Claim)기반의 인증이 있다.

일반 토큰 기반

클레임 토큰 기반

2) JWT 구조

Untitled

JWT는 헤더(header), 페이로드(payload), 서명(signature) 세 파트로 나눠져 있으며, Json 형태인 각 부분은 Base64URL로 인코딩 되어 표기된다. 또한 , 각각의 부분을 이어주기 위해서 . 구분자를 사용해 구분을 하게 된다.

Untitled

a) 헤더(Header)