JWT(JSON Web Token)は、Webアプリケーションの認証や認可に使用される一般的な手法です。JWTトークンには、有効期限を設定することができます。Flaskフレームワークを使用してJWTトークンの有効期限を設定する方法を以下に示します。
まず、Flask-JWT-Extendedというライブラリをインストールする必要があります。以下のコマンドを使用してインストールします。
pip install flask-jwt-extended
次に、FlaskアプリケーションでJWTトークンを生成するためのセットアップを行います。以下のコード例を参考にしてください。
from flask import Flask
from flask_jwt_extended import JWTManager, create_access_token, get_jwt_identity, jwt_required
from datetime import timedelta
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 {'access_token': access_token}, 200
@app.route('/protected', methods=['GET'])
@jwt_required()
def protected():
# トークンが有効であることを確認し、保護されたリソースにアクセスするロジックを実装する
# ...
# ユーザーIDを取得する例
user_id = get_jwt_identity()
# 保護されたデータを返す
return {'data': 'This is protected data', 'user_id': user_id}, 200
if __name__ == '__main__':
app.run()
上記のコードでは、JWT_ACCESS_TOKEN_EXPIRES
設定でJWTトークンの有効期限を設定しています。この例では、トークンの有効期限を30分に設定していますが、必要に応じて変更することができます。
以上が、FlaskでJWTトークンの有効期限を設定する方法です。これにより、トークンのセキュリティを向上させることができます。