Learning Log/CS

[cs] JWT(Json Web Token)

자척개 2023. 8. 1. 17:22
반응형

1. JWT란

* 의미 : JWT란 클라이언트와 서버 간에 정보를 JSON 객체로 안전하게 전송하기 위한 개방형 표준

* 역할 : 사용자 측에서 사용자의 정보를 관리하는 토큰 기반 인증 메커니즘

 

2. JWT의 구조

* Header : Signature을 만드는데 사용한 알고리즘(alg)과 Token의 타입 정보(typ)를 가지고 있음

{
    "alg" : "HS256",
    "typ" : "JWT" 
}

// 사용한 알고리즘은 HS256이고 Token 타입은 JWT

 

* Payload : 실질적으로 전달해야 하는 정보들을 가지고 있으며, 담겨있는 정보 하나 하나를 Claim이라고 함

{
    "exp": "1245678900", //Registered Claims
    "https://velopert.com/jwt_claims/is_admin": true, //Public Claims
    "user_id" : 12345123 //Private Claims
}

 

* Signature : Header의 인코딩된 내용과 Payload의 인코딩된 내용을 더한 뒤 Secret Key와 알고리즘을 이용해 암호화된 JWT의 서명 부분

HMACSHA256(
    base64UrlEncode(header) + "." +
    base64UrlEncode(payload),
    secret
)

 

 

Resources

- 위코드 Foundation - 2

- https://mangkyu.tistory.com/56

반응형

'Learning Log > CS' 카테고리의 다른 글

[cs] 운영체제의 역할, PCB, 메모리 계층  (0) 2023.07.31
[cs] 쿠키, 세션, 토큰이란  (0) 2023.07.27
[cs] 프로세스와 스레드  (0) 2023.07.27
[cs] RESTful API란  (0) 2023.07.27