如何在flask中更新JWT标识?

如何在flask中更新JWT标识?,flask,jwt,Flask,Jwt,我正在尝试创建一个更新帐户视图,当用户单击更新时,我正在刷新令牌,并获取jwt标识 但是,jwt标识没有改变,用户与更新前保持不变。db正在更新,但jwt标识未更新 那么我如何更新身份呢?如果我只有当前jwt令牌和刷新令牌 这是我的路线 @app.route('/current-user', methods=['GET']) @jwt_required def get_current_user(): # Access the identity of the current user wi

我正在尝试创建一个更新帐户视图,当用户单击更新时,我正在刷新令牌,并获取jwt标识

但是,jwt标识没有改变,用户与更新前保持不变。db正在更新,但jwt标识未更新

那么我如何更新身份呢?如果我只有当前jwt令牌和刷新令牌

这是我的路线

@app.route('/current-user', methods=['GET'])
@jwt_required
def get_current_user():
    # Access the identity of the current user with get_jwt_identity
    try:
        current_user = get_jwt_identity()
        if current_user:
            return Response(json.dumps({"logged_in_as":current_user}), status=200, mimetype='application/json')
        else:
            return Response(json.dumps({"error":"Couldn't get user details"}), status=404, mimetype='application/json')
    except:
        return Response(json.dumps({"error":"Something went wrong"}), status=400, mimetype='application/json')

@app.route('/refresh', methods=['POST'])
@jwt_refresh_token_required
def refresh():
    current_user = get_jwt_identity()
    new_token = create_access_token(identity=current_user)
    ret = {'access_token': new_token,"logged_in_as":current_user}
    return Response(json.dumps(ret), status=200, mimetype='application/json')

JWT标识完全存储在令牌中,它不会从数据库中获取该信息,因此在创建新的JWT之前,不会反映数据库中的任何更新


看起来您正在使用flask jwt extended。以下是如何使用该扩展在每个请求中从数据库加载用户:

显示您的令牌生成方法,您正在使用当前JWT,或者您正在解码令牌并检索用户ID以生成新令牌?使用加载程序回调是否消除了在创建令牌时指定标识的需要?是,否则,您将无法知道该令牌映射到哪个用户。例如,您可以使用用户id作为标识,然后使用它从数据库加载用户