1 개요[ | ]
- JSON Web Token (JWT)
- 제이슨 웹 토큰
- JSON 형식 웹 토큰
- 토큰 생성에 관한 JSON 기반의 공개 표준 (RFC 7519)
- 구성: 헤더, 페이로드, 시그니처
- 쿠키, 세션 대안
- 각 언어별로 다양한 구현체 라이브러리가 있음
2 예시[ | ]
JavaScript
Copy
header = '{"alg":"HS256","typ":"JWT"}'
payload = '{"loggedInAs":"admin","iat":1422779638}'
key = 'secretkey'
unsignedToken = encodeBase64(header) + '.' + encodeBase64(payload)
signature = HMAC-SHA256(key, unsignedToken)
token = encodeBase64(header) + '.' + encodeBase64(payload) + '.' + encodeBase64(signature)
// eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJsb2dnZWRJbkFzIjoiYWRtaW4iLCJpYXQiOjE0MjI3Nzk2Mzh9.gzSraSYS8EXBxLN_oWnFSRgCzcmJmMjLiuyu5CSpyHI
3 표준 필드[ | ]
필드 | 영어 | 한국어 | 비고 |
---|---|---|---|
iss |
issuer | 발행자 | JWT의 발행자 |
sub |
subject | 제목 | JWT의 제목 |
aud |
audience | 청중 | JWT가 의도한 접수자 |
exp |
expiration time | 만료일시 | JWT가 만료(무효화)되는 일시 |
nbf |
not before | 시작일시 | JWT가 시작(유효화)되는 일시 |
iat |
issued at | 발행일시 | JWT가 발행되는 일시 |
jti |
JWT ID | JWT 아이디 | 토큰의 유니크식별자. 대소문자 구별 |
typ |
token type | 토큰 타입 | |
cty |
content type | 컨텐트 타입 | 항상 JWT
|
alg |
message authentication code algorithm | 메시지인증코드 알고리즘 | 발행자가 시그니처를 검증하기 위해 정한 알고리즘 |
4 같이 보기[ | ]
5 참고[ | ]
- RFC 7519
- https://jwt.io/
- 영어 위키백과 "JSON Web Token"
- http://www.joinc.co.kr/w/man/12/jwt
- https://developer.okta.com/blog/2017/08/17/why-jwts-suck-as-session-tokens Why JWTs Suck as Session Tokens 《okta》 Randall Degges 2017-08-17
편집자 Jmnote Jmnote bot
로그인하시면 댓글을 쓸 수 있습니다.