JWT 토큰의 구조
- header : 토큰의 타입과 해시 암호화 알고리즘으로 구성되어 있다. 첫째는 토큰의 유형 (JWT)을 나타내고, 두 번째는 HMAC, SHA256 또는 RSA와 같은 해시 알고리즘을 나타내는 부분이다.
- payload : 토큰에 담을 클레임(claim) 정보를 포함하고 있다. Payload 에 담는 정보의 한 ‘조각’ 을 클레임이라고 부르고, 이는 name / value 의 한 쌍으로 이뤄져있다. 토큰에는 여러개의 클레임 들을 넣을 수 있다.
- signature : 토큰을 인코딩하거나 유효성 검증을 할 때 사용하는 고유한 암호호 코드이다. secret key를 포함하여 암호화되어 있다.
JWT 작동 순서
- 사용자가 id와 password를 입력하여 로그인을 시도한다.
- 서버는 요청을 확인하고 secret key를 통해 Access token을 발급한다.
- JWT 토큰을 클라이언트에 전달한다.
- 클라이언트에서 API 을 요청할때 클라이언트가 Authorization header에 Access token을 담아서 보낸다.
- 서버는 JWT Signature를 체크하고 Payload로부터 사용자 정보를 확인해 데이터를 반환한다.
- 클라이언트의 로그인 정보를 서버 메모리에 저장하지 않기 때문에 토큰기반 인증 메커니즘을 제공한다.
출처 : http://www.opennaru.com/opennaru-blog/jwt-json-web-token/
JWT (JSON Web Token) 이해하기와 활용 방안 - Opennaru, Inc.
JWT 는 JSON Web Token의 약자로 전자 서명 된 URL-safe (URL로 이용할 수있는 문자 만 구성된)의 JSON입니다.JWT는 속성 정보 (Claim)를 JSON 데이터 구조로 표현한 토큰으로 RFC7519 표준 입니다.
www.opennaru.com