JWT란 ?
JWT(json web token)는 Json 포맷을 이용하여 서버와 클라이언트 사이에서 사용자 인증 정보를 안전하게 전달하기 위한 웹 토큰 표준이다.
특징
- 토큰 자체에 인증에 필요한 정보가 포함되어 있어 데이터베이스 조회가 필요하지 않다.
- 토큰은 헤더, 페이로드, 시그니처로 구성된다.
- 누구든지 JWT 내부에 들어있는지 정보를 확인할 수 있다.
- JWT가 인증 서버에서 발급되었는지 위변조 여부를 확인 가능하다.
구성요소
- Header : 토큰의 타입, 해시 암호화 알고리즘이 포함되어 있다.
타입은 토큰의 유형을 나타내며 해시 암호화 알고리즘에는 SHA256, RSA, HMAC과 같은 해시 암호화 알고리즘을 나타낸다. - Payload : 토큰에 담을 클레임 (claim) 정보를 포함한다. 페이로드에 담는 정보의 한 '조각'을 클레임이라고 칭하며,
이는 name / value 의 한 쌍으로 이뤄져있다. 토큰에는 여러 개의 클레임을 포함시킬 수 있다.
또 클레임의 정보로는 등록된(registered) 클레임과 공개(public) 클레임, 비공개(private) 클레임으로 세 종류가 존재한다. - Signature : Secret key를 포함하며 암호화되어 있다.
동작 원리
'Web' 카테고리의 다른 글
HTTP Status Code (추가예정) (0) | 2024.05.27 |
---|---|
Bcrypt (0) | 2024.05.24 |
트랜잭션 (0) | 2024.05.22 |
쿠키 (0) | 2024.05.21 |
관계형 데이터베이스 (0) | 2024.05.20 |