JWT란
유저를 인증하고 식별하기 위한 토근 기반 인증이다. 세션과 달리 클라이언트 영역에 저장되기에 서버의 부담을 덜 수 있다.
JWT의 구조
Header : 사용될 해시 알로리즘의 타입, 타입을 표현
Payload : 토근에 담을 정보가 저장돼있다. 하나의 정보를 클레임이라고 하고, 클레임에는 3가지 종류가 있다.(Registered, Public, Private)
Signature : 인코딩된 Header & Payload 값을 비밀키로 해싱한 값을 가지고 있다.
- 클라이언트가 id, pw를 통해 서버에 토큰 요청
- 서버에서 서명된 JWT를 생성하여 클라이언트에 응답
- 클라이언트가 서버로부터 데이터를 요청할 때 마다 JWT를 HTTP 헤더에 추가한다.
- 서버에서 클라이언트로부터 온 JWT를 검증 후 데이터를 응답해준다.