파이썬을 사용한 JWT 토큰 발급과 저장 방법
소개
JWT (JSON Web Token)은 웹 애플리케이션에서 인증과 권한 부여를 위해 사용되는 오픈 표준입니다. 이 문서에서는 파이썬을 사용하여 JWT 토큰을 발급하고 저장하는 방법에 대해 알아보겠습니다.
JWT 토큰 발급하기
JWT 토큰을 발급하기 위해서는 다음 단계를 따르면 됩니다:
PyJWT
패키지를 설치합니다:
pip install PyJWT
- 필요한 모듈을 임포트합니다:
import jwt
import datetime
- JWT 토큰을 발급하는 함수를 작성합니다:
def generate_jwt_token(data, secret_key, expiration_time):
payload = {
'data': data,
'exp': datetime.datetime.utcnow() + datetime.timedelta(seconds=expiration_time)
}
token = jwt.encode(payload, secret_key, algorithm='HS256')
return token.decode('utf-8')
data
는 토큰에 포함될 데이터를 의미하며, secret_key
는 암호화에 사용할 비밀 키입니다. expiration_time
은 토큰의 만료 시간을 초 단위로 설정합니다.
- 토큰을 발급합니다:
secret_key = 'my_secret_key'
expiration_time = 3600 # 1시간
data = {'user_id': 123}
token = generate_jwt_token(data, secret_key, expiration_time)
print(token)
JWT 토큰 저장하기
발급된 JWT 토큰은 보안상의 이유로 안전한 곳에 저장해야 합니다. 일반적으로는 클라이언트 쿠키 또는 로컬 스토리지에 저장됩니다. 다음은 간단한 예입니다:
import flask
...
@app.route('/login', methods=['POST'])
def login():
# 사용자 인증 후 토큰 발급
token = generate_jwt_token(data, secret_key, expiration_time)
# 토큰을 쿠키에 저장
response = flask.make_response()
response.set_cookie('jwt_token', token)
return response
위 예제에서는 Flask를 사용하여 토큰을 쿠키에 저장하는 방법을 보여줍니다. 필요에 따라 쿠키 저장 대신 로컬 스토리지에 저장하는 방법을 사용할 수도 있습니다.
결론
이 문서에서는 파이썬을 사용하여 JWT 토큰을 발급하고 저장하는 방법에 대해 알아보았습니다. JWT 토큰은 웹 애플리케이션의 인증과 권한 부여에 유용하게 사용될 수 있으며, 위의 코드를 참고하여 실제 프로젝트에서 적용해 볼 수 있습니다.
#jwt #파이썬