簡體   English   中英

@JWT_Required 裝飾器異常處理

[英]@JWT_Required decorator Exception Handling

我正在使用使用 JWT 的身份驗證 API,並且效果很好。 此 API 用於為我的 Web 應用程序授權用戶。 為此,我使用 Flask 手動將 JWT access_tokens 存儲為 cookie。 我使用 @JWT_required 裝飾器保護我的資源,如果我嘗試使用有效令牌訪問安全資源,一切正常。 但是,如果訪問令牌丟失或無效/過期,我會收到一個 JSON 說明:

{
      "message": "Missing cookie \"access_token_cookie\""
}

這顯然是正確的消息,而不是顯示一個 JSON,我想重定向到 Flask 提供的相應狀態代碼錯誤頁面 - 在這種情況下為 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')

這是 Benjo 在他的問題底部發布的解決方案:

@jwt.unauthorized_loader
def my_invalid_token_callback(expired_token):
    return render_template('401.html', title='Home')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM