我正在使用使用 JWT 的身份验证 API,它工作得很好。此 API 用于为我的网络应用程序授权用户。为此,我使用 Flask 手动将 JWT access_tokens 存储为 cookie。我使用 @JWT_required 装饰器保护我的资源,如果我尝试使用有效令牌访问安全资源,一切正常。但是,如果访问令牌丢失或无效/过期,我会收到一条 JSON 消息:
{
"message": "Missing cookie \"access_token_cookie\""
}
这显然是正确的消息,而不是显示我想要重定向到 Flask 提供的相应状态码错误页面的 JSON - 在本例中为 401。
- 我尝试为 Flask 和 JWT Manager 添加错误处理
- 自定义装饰器,虽然我在这方面表现不佳,因为我相信在 FLASK-JWT-extended 中必须有解决方案
@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')