SeouliteLab

파이썬으로 JWT(JSON Web Tokens) 다루기: PyJWT 라이브러리 활용하기 본문

카테고리 없음

파이썬으로 JWT(JSON Web Tokens) 다루기: PyJWT 라이브러리 활용하기

Seoulite Lab 2024. 4. 18. 08:22

JWT(JSON Web Tokens)는 웹 애플리케이션에서 사용자 인증 및 권한 부여를 위해 널리 사용되는 토큰 기반의 인증 방식입니다. 파이썬에서 JWT를 생성하고 검증하기 위해 사용할 수 있는 PyJWT 라이브러리는 간편하고 유연한 API를 제공합니다. 이번에는 PyJWT를 사용하여 JWT를 다루는 방법을 알아보겠습니다.

예제 1: JWT 생성하기

import jwt

# 페이로드(payload) 설정
payload = {"user_id": 123, "username": "user123"}

# 시크릿 키 설정
secret_key = "my_secret_key"

# JWT 생성
token = jwt.encode(payload, secret_key, algorithm="HS256")

print("생성된 JWT:", token)

위 예제는 PyJWT를 사용하여 JWT를 생성하는 방법을 보여줍니다. jwt.encode() 함수를 사용하여 페이로드와 시크릿 키를 설정하고, JWT를 생성합니다.

예제 2: JWT 검증하기

import jwt

# JWT
token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoxMjMsInVzZXJuYW1lIjoidXNlcjEyMyJ9.uKFZb_Dm6EkzsbYn2HltYU1s8fZ47x6bGM6w5R1vBss"

# 시크릿 키 설정
secret_key = "my_secret_key"

# JWT 검증
decoded_token = jwt.decode(token, secret_key, algorithms=["HS256"])

print("검증된 JWT 페이로드:", decoded_token)

이 예제는 PyJWT를 사용하여 JWT를 검증하는 방법을 보여줍니다. jwt.decode() 함수를 사용하여 JWT를 검증하고, 페이로드를 반환합니다.

예제 3: 만료 시간 설정하기

import jwt
import datetime

# 페이로드(payload) 설정
payload = {"user_id": 123, "username": "user123", "exp": datetime.datetime.utcnow() + datetime.timedelta(hours=1)}

# 시크릿 키 설정
secret_key = "my_secret_key"

# JWT 생성
token = jwt.encode(payload, secret_key, algorithm="HS256")

print("만료 시간이 포함된 JWT:", token)

위 예제는 PyJWT를 사용하여 JWT에 만료 시간을 설정하는 방법을 보여줍니다. 페이로드에 "exp" 키를 추가하여 만료 시간을 설정하고, JWT를 생성합니다.

PyJWT를 사용하면 파이썬으로 JWT를 손쉽게 다룰 수 있습니다.