JWT

EricHan·2022년 8월 23일
0

저번 로그인 프로세스를 설명할 때 잠깐 등장했던 JWT

JSON Web Token의 약자로 인증과 인가 과정 중 인증에 필요한 정보들을 암호화(encryption)시킨 토큰이다.

*저번에도 잠깐 설명했지만 유저정보를 암호화(encryption)시킨 엑세스 토큰은 이 후 인가 과정에서 복호화(decryption) 시켜 유저 정보를 불러 올 수도 있다.

JWT는 그냥 모르는 상태에서 봤을 때 마치 누군가 타자를 막쳐놓은 듯한 형태를 띄고 있지만 사실 명확하게 Header , Payload, signature 로 나눠져 있다.

Header에서는 alg와 typ 라는 두가지 정보를 담고 있는데
alg는 정보를 암호화 시킬 해싱 알고리즘을 돌리는 역할
typ는 토큰의 타입을 지정하는 역할

Payload에서는 실제 토큰에 정보를 담는 역할을 하고 있고,
(복호화 했을 때 나오는 유저 정보)
여기서 key-value 형태로 이루어진 한쌍의 정보를 Claim이라고 부른다.

Signature에서는 인코딩(데이터를 공개적으로 다른 형태로 변환 하는 프로세스)된 Header와 Payload를 합친 후, 비밀키로 해싱하여...
쉽게 설명하자면, Header와 Payload 부분은 해커에 의해 복호화 될 가능성이 있기 때문에 좀 더 보완성을 높이기 위해, 서버에 저장된 키(토큰)가 유출 되지 않기 위해 생성된다고 이해하면 된다.

토큰의 위변조 여부를 확인 할 때 사용되는 역할

profile
desarollitor

0개의 댓글