使用flask-jwt-extended回调与flask-restful和create_app

时间:2018-02-28 22:12:46

标签: python flask jwt flask-restful flask-jwt-extended

我正在尝试使用flask-jwt-extended为我的烧瓶API创建API令牌。我正在尝试初始化token_in_blacklist_loader,但无法找到正确的方法。

问题是token_in_blacklist_loader是作为装饰器实现的。它应该以下列方式使用:

@jwt.token_in_blacklist_loader
def check_if_token_in_blacklist(decrypted_token):
    jti = decrypted_token['jti']
    return jti in blacklist

^ from the docs here

jwt定义为:

jwt = JWTManager(app)

但是如果使用create_app模式,则jwt变量隐藏在函数内部,并且不能在装饰器的全局范围内使用。

解决此问题/解决此问题的正确方法是什么?

2 个答案:

答案 0 :(得分:2)

我最终做的是将处理程序放在create_app中,如下所示:

def create_app(name: str, settings_override: dict = {}):
    app = Flask(name, ...)
    ...
    jwt = JWTManager(app)
    @jwt.token_in_blacklist_loader
    def check_token_in_blacklist(token_dict: dict) -> bool:
        ...

答案 1 :(得分:1)