JWT 토큰을 발행해보자

jun17114·2021년 1월 5일
4

Web 개발

목록 보기
11/11

👣 JWT 토큰이란?

JWT 토큰은 JSON Web Token의 약자로 전자 서명된 URL-safeJSON입니다. JWT의 대부분의 프로그래밍 언어에서 사용되면서 자기 수용적이라는 특징이 있습니다. 자기 수용적인 JWT는 시스템에서 발급된 토큰이 토큰에 대한 기본정보, 전달할 내용, 그리고 토큰이 검증됐다는 것을 증명해주는 signature이 있습니다. .

📱 JWT의 구조

JWT.을 구분으로 3가지 영역으로 되어있습니다.

Header에는 algtyp가 들어있습니다. typ는 타입으로 JWT가 타입이고, alg에는 알고리즘으 들어가게 됩니다.

Payload

Payload는 토큰에 담을 내용이 담겨있습니다. 그 내용은 여러개의 claim으로 이루어져 있습니다. 이 claimname:value 쌍으로 되어있으며 그 종류로는 세가지가 있습니다.

  • registered claim : 토큰에 대한 정보를 담기 위해 이미 정해진 claim
  • public claim : 충돌을 방지하기 위한 이름을 가지고 있는다.
  • private claim : 등록되있지도, 공개되지도 않은 claim

Signature

Siganturesecret Key를 포함하여 암호화되어있습니다. Header의 인코딩값과 Payload의 인코딩값을 합친후 비밀키로 해쉬한다.

🕺🏼 Python에서 JWT 생성하기

Python에서 JWT를 사용하기 위해서는 PyJWT 패키지를 설치해야합니다.

pip install PyJWT

import jwt

PyJWT를 임포트할 때는 jwt로 가져옵니다.
jwt로 이제 사용자에게 줄 Token을 만들 수 있습니다.

token = jwt.encode({"user_id":user_id},SECRET,algorithm="HS256")

만들어진 tokenJsonResponse로 프런트엔드에게 줄 수 있습니다. 이렇게 보내진 token은 로컬 스토리지나 세션 스토리지 또는 쿠키에 저장됩니다.


0개의 댓글