본문 바로가기
코딩/Python

JWT(Jason Web Token)토큰 만들기

by 형큐 2023. 7. 8.
SMALL

JWT 토큰을 만드는 과정입니다

1.필요한 라이브러리 설치

pip install pyjwt

2.payload 데이터 생성

payload는 JWT 토큰 안에 들어가는 정보입니다. 딕셔너리 형태로 생성합니다.

payload = {
    "sub": "1234567890",
    "name": "John Doe",
    "iat": 1516239022
}

이 payload 데이터는 sub 속성에는 사용자 ID, name 속성에는 사용자 이름, iat 속성에는 토큰 발급 시간을 나타내도록 하였습니다.

3.비밀키 생성

JWT 토큰에는 발급자를 확인하기 위한 서명(signature)이 들어갑니다. 이 서명에 사용할 비밀키를 생성합니다.

import os

secret = os.getenv("JWT_SECRET_KEY")

4.JWT 토큰 생성

pyjwt 라이브러리를 사용하여 JWT 토큰을 생성합니다

import jwt

encoded_jwt = jwt.encode(payload, secret, algorithm="HS256")

이때, **payload**는 위에서 생성한 딕셔너리 객체입니다. **secret**은 비밀키입니다. **algorithm**은 토큰 서명 알고리즘을 나타냅니다.

이제 encoded_jwt 변수에는 생성된 JWT 토큰이 저장됩니다.

만약 토큰 만료 시간을 설정하고 싶다면, exp 속성을 payload에 추가하면 됩니다. 예를 들어 1시간 뒤에 토큰이 만료되게 하려면 다음과 같이 exp 속성을 추가합니다.

from datetime import datetime, timedelta

now = datetime.utcnow()
exp = now + timedelta(hours=1)

payload = {
    "sub": "1234567890",
    "name": "John Doe",
    "iat": now,
    "exp": exp
}

이렇게 하면 exp 속성에 설정한 시간이 지난 뒤에는 토큰이 유효하지 않게 됩니다.

반응형
LIST