FlaskでJWTトークンの有効期限を設定する方法


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トークンの有効期限を設定する方法です。これにより、トークンのセキュリティを向上させることができます。