10

シナリオ

ログインしたユーザーのトークンの有効期限は 24 時間です。その期間内に、@jwt_requiredデコレータを使用したすべてのリクエストで、現在のアクセス トークンの有効期限がさらに 24 時間延長されます。最大有効期限は 168 (24 * 7) 時間です。

access_token と refresh_token を使用できます。

ret = {
        'access_token': create_access_token(identity=username, fresh=True),
        'refresh_token': create_refresh_token(identity=username)
    }

しかし、それは私の applicatino からのすべての API 呼び出しが 2 つの要求になることを意味します: 1. 実際の HTTP 要求 2. 認証トークンを更新します。

@app.route('/refresh', methods=['POST'])
@jwt_refresh_token_required
def refresh():
    current_user = get_jwt_identity()
    ret = {
        'access_token': create_access_token(identity=current_user)
    }
    return jsonify(ret), 200

認証トークンを暗黙的に拡張する方法はありますか?

4

2 に答える 2

1
app = Flask(__name__)

app.config["JWT_SECRET_KEY"] = "super-secret"  # Change this!
app.config["JWT_ACCESS_TOKEN_EXPIRES"] = timedelta(hours=1)
app.config["JWT_REFRESH_TOKEN_EXPIRES"] = timedelta(days=30)
jwt = JWTManager(app)

あなたの要件に応じて時間を変更します

于 2021-10-01T07:01:40.870 に答える