JWT
JWT
웹 표준
JSON 객체를 사용하여 가볍고 자가수용적인 방식으로 정보를 안전성 있게 전달해줌
-
특징
-
주류 프로그래밍에서 지원함
대부분의 주류 프로그래밍 언어에서 지원함
-
자가 수용적임
필요한 모든 정보를 자체적으로 지니고 있음
토근에 대한 기본정보, 전달할 정보, 토큰이 검증됐다는 것을 증명해주는 signature를 포함함
-
쉽게 전달할 수 있음
자가 수용적이라 두 개체 사이에 손쉽게 전달 가능
-
-
사용되는 상황
-
회원 인증
유조가 로그인을 하면 서버는 유저의 정보에 기반한 토큰 발급하여 유저에게 전달 유저는 받은 토큰을 서버에 요청할 때 마다 포함시켜서 전달 서버는 전달받은 토큰을 검증 한 뒤 그에 따른 작업 처리
-
정보 교류
정보에 sign이 되어있기 때문에 이 정보를 보낸이가 바뀌진 않았는지, 정보가 도중에 조작되지 않았는지 검증할 수 있음
-
-
생김새
’.’을 구분자로 3가지의 문자열로 되어있음
-
구조
aaaaaa.bbbbbb.cccccc
a는 헤더, b는 내용, c는 서명 으로 이루어짐
-
헤더
토큰의 타입을 지정한 typ, 해싱 알고리즘을 지정한 alg로 이루어짐
-
정보
토큰에 담을 정보인 클레임이 들어있음
-
클래임
담는 정보의 한 ‘조각’
name/value 의 한 쌍으로 이루어짐
-
분류
-
등록된(registered) 클레임
서비스에서 필요한 정보들이 아닌, 토큰에 대한 정보들을 담기위해 이름이 이미 정해진 클레임
사용은 선택적
이름으로 발급자, 제목, 대상자, 만료시간, 활성 날짜, 발급된 시간, JWT의 고유 식별자가 있음
-
공개(public) 클레임
충돌이 방지된 이름을 가지고 있어야 함
클레임 이름을 URI 형식으로 지음
-
비공개(private) 클레임
양 측간에 협의하에 사용되는 클레임 이름
-
-
-
-
서명
헤더의 인코딩 값과 정보의 인코딩 값을 합친 후 주어진 비밀키로 해쉬를 하여 생성됨
-