Notice
Recent Posts
Recent Comments
Link
SeouliteLab
파이썬으로 JWT(JSON Web Tokens) 다루기: PyJWT 라이브러리 활용하기 본문
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를 손쉽게 다룰 수 있습니다.