我正在使用通过JWT的身份验证API,效果很好。 该API被用来授权用户使用我的Web应用程序。为此,我通过Flask将JWT access_tokens手动存储为cookie。 我使用@JWT_required装饰器保护我的资源,如果我尝试使用有效令牌访问安全资源,则一切正常。 但是,如果访问令牌丢失或无效/过期,我会收到JSON消息:
{
"message": "Missing cookie \"access_token_cookie\""
}
这显然是正确的消息,但不是显示JSON,而是要重定向到Flask提供的相应状态码错误页面-在这种情况下为401。
@app.route('/dashbord')
@jwt_required
def dashbord():
return render_template('dashbord.html', title='Home')
如果访问令牌有任何问题,我的目标是重定向到相应的错误页面404、403、401。
解决方案:
@jwt.unauthorized_loader
def my_invalid_token_callback(expired_token):
return render_template('401.html', title='Home')
答案 0 :(得分:0)
以下是用于更改无效令牌的结果的文档:https://flask-jwt-extended.readthedocs.io/en/stable/changing_default_behavior.html#changing-callback-functions
答案 1 :(得分:0)
以下是Benjo在问题底部发布的解决方案:
@jwt.unauthorized_loader
def my_invalid_token_callback(expired_token):
return render_template('401.html', title='Home')