Json Web Token
당사자 간의 정보를 JSON 형태로 안전하게 전송하기 위한 토큰
.
으로 구분된 세 부분으로 구성되어 있다.
xxxxx.yyyyy.zzzzz
검증과 관련된 내용을 담고 있다.
헤더는 두 가지 정보를 포함하고 있다.
alg : 해싱 알고리즘을 지정(보통 SHA256, RSA 사용)
typ : 토큰의 타입을 지정
{
"alg" : "HS526",
"typ" : "JWT"
}
이렇게 완성된 헤더는 Base64Url 형식으로 인코딩돼 사용됨
+
,/
를 각각 -
,_
으로 수정한 방식토큰에 담는 정보를 포함하며 이곳에 포함된 속성은 클레임이라고 한다.
등록된 클레임
필수는 아니지만 토큰에 대한 정보를 담기 위해 이미 이름이 정해진 클레임
공개 클레임
키 값을 마음대로 정의할 수 있다.
다만 충돌이 발생하지 않도록 주의해야함
비공개 클레임
통신간에 상호 합의되고 등록된 클레임과 공개된 클레임이 아닌 클레임
이렇게 완성된 내용은 Base64Url 형식으로 인코딩되어 사용된다.
인코딩된 헤더, 인코딩된 내용, 비밀키, 헤더의 알고리즘 속성값을 가져와 생성된다.