JWT 토큰 강제 만료 시간 설정 방법
JWT (JSON Web Token)은 클라이언트와 서버 간에 인증 정보를 안전하게 전달하기 위한 방식 중 하나입니다. 토큰은 서버에서 생성되며, 페이로드에는 사용자의 정보와 토큰의 만료 시간 등이 포함됩니다. 만료 시간이 지난 토큰은 더 이상 유효하지 않기 때문에 보안에 결정적인 역할을 합니다.
Flask에서 JWT 토큰의 만료 시간을 설정하는 방법은 다음과 같습니다.
import datetime
from flask import Flask
from flask_jwt_extended import JWTManager, create_access_token
app = Flask(__name__)
app.config['JWT_SECRET_KEY'] = 'your-secret-key'
jwt = JWTManager(app)
@app.route('/login', methods=['POST'])
def login():
# 사용자 인증 로직
# ...
# 토큰 생성
access_token = create_access_token(identity=user_id, expires_delta=datetime.timedelta(minutes=30))
# 토큰 반환
return {'access_token': access_token}
위 예제에서 create_access_token
함수의 expires_delta
매개변수를 사용하여 토큰의 만료 시간을 설정할 수 있습니다. datetime.timedelta
를 사용하여 원하는 만료 시간을 지정할 수 있으며, 위의 예제에서는 30분으로 설정되어 있습니다.
로그 기록 정책 설정 방법
Flask는 logging
모듈을 사용하여 로그를 기록할 수 있습니다. 로그는 애플리케이션의 동작과 이벤트를 추적하고 디버깅에 유용한 정보를 제공합니다. Flask의 로깅 기능을 사용하여 각 요청 및 응답에 대한 로그를 기록하는 방법은 다음과 같습니다.
import logging
from flask import Flask
app = Flask(__name__)
# 로그 레벨 설정
app.logger.setLevel(logging.INFO)
@app.route('/')
def hello():
app.logger.info('Hello World') # 로그 메시지 출력
return 'Hello World'
if __name__ == '__main__':
app.run()
위 예제에서는 app.logger
를 사용하여 로그 메시지를 기록하고 있습니다. app.logger
는 Flask 애플리케이션의 로그 객체를 나타내며, setLevel
메서드를 사용하여 원하는 로그 레벨을 설정할 수 있습니다. 위의 예제에서는 INFO 레벨로 설정되어 있습니다.
Flask의 로깅 기능은 Flask-RESTful 또는 Flask-JWT-Extended와 같은 확장 모듈들과 함께 사용할 수 있으며, 필요한 로그 기록 정책을 설정하여 보다 상세하고 유연한 로깅을 구현할 수 있습니다.