파이썬 Flask를 사용하여 JWT 토큰 강제 만료 시간 설정 방법과 로그 기록 정책 설계 방법

JWT 토큰 강제 만료 시간 설정 방법

JWT (JSON Web Token)은 웹 애플리케이션에서 사용자 인증을 처리하기 위한 표준 방식입니다. JWT는 토큰의 만료 시간을 설정하여 보안을 강화할 수 있습니다. Flask에서 JWT 토큰의 강제 만료 시간을 설정하는 방법에 대해 알아보겠습니다.

from flask import Flask, jsonify
from flask_jwt_extended import JWTManager, create_access_token, jwt_required, get_jwt_identity

app = Flask(__name__)
app.config['JWT_SECRET_KEY'] = 'your_secret_key'
app.config['JWT_ACCESS_TOKEN_EXPIRES'] = timedelta(minutes=30)  # 토큰 만료 시간 설정
jwt = JWTManager(app)

@app.route('/login', methods=['POST'])
def login():
    # 로그인 로직 처리
    # 유효한 사용자인 경우 JWT 토큰 생성
    
    access_token = create_access_token(identity=user_id)
    return jsonify(access_token=access_token), 200

@app.route('/protected', methods=['GET'])
@jwt_required()  # 토큰 인증이 필요한 API
def protected():
    current_user = get_jwt_identity()
    return jsonify(logged_in_as=current_user), 200

if __name__ == '__main__':
    app.run()

위의 예제 코드에서 JWT 토큰의 [JWT_ACCESS_TOKEN_EXPIRES](https://flask-jwt-extended.readthedocs.io/en/stable/options.html#configuration-options) 값을 설정하면 토큰이 생성된 후 해당 시간만큼만 유효하게 됩니다. 30분 후에는 토큰이 만료되어 재인증이 필요합니다.

로그 기록 정책 설계 방법

로그 기록은 애플리케이션의 동작 상태와 에러 등을 추적하기 위해 중요한 부분입니다. Flask에서 로그 기록 정책을 설계하는 방법에 대해 알아보겠습니다.

import logging
from flask import Flask

app = Flask(__name__)

@app.route('/')
def index():
    app.logger.info('This is an info log')
    app.logger.warning('This is a warning log')
    app.logger.error('This is an error log')
    return 'Hello World'

if __name__ == '__main__':
    app.run()

위의 예제 코드에서는 Flask의 기본 로거를 사용하여 로그를 기록합니다. app.logger.info(), app.logger.warning(), app.logger.error() 메서드를 사용하여 각각의 로그 레벨에 맞는 메시지를 로그로 기록할 수 있습니다.

로그 기록은 디버깅 및 모니터링에 필수적인 요소이므로, 로그 레벨, 로그 형식, 로그 저장 위치 등을 고려하여 적절한 로그 기록 정책을 설계해야 합니다.

#hashtags: #파이썬 #Flask #JWT #로그기록 #로그기록정책