大家好,
我在使用 Nginx 在 VPS 伺服器上部署 Flask 應用程式時遇到問題。該應用程式在本地測試以及在 Heroku 上託管時都運作良好。但是,當部署在我的 VPS 上時,任何受 @jwt_required() 保護的路由都會拋出 422 錯誤。
細節:
-
伺服器設定:
- Ubuntu VPS
- Nginx 作為反向代理
- Gunicorn 運行 Flask 應用程式
- Flask-JWT-Extend 用於 JWT 身份驗證
-
有效方法:
- 所有沒有 @jwt_required() 裝飾器的 API 路由都可以完美運作。
- 部署在 Heroku 上時,相同的應用程式可以按預期工作(即使使用 @jwt_required())。
-
失敗之處:
- 在 VPS 設定上使用 @jwt_required() 裝飾器的任何路由都會傳回 422 錯誤。
- 刪除@jwt_required()可以讓路由正常運作。
我嘗試過的事情:
- 已驗證 JWT 令牌是否在授權標頭中正確傳遞。
- 檢查 SECRET_KEY 和令牌過期設定是否不符。
- 確認應用程式使用正確的 ACCESS_TOKEN_EXPIRES 和演算法。
- 使用Postman 和curl 進行測試——沒有區別。
我懷疑這可能與 Nginx 或 Gunicorn 配置有關,但我不知道是什麼。它是否與伺服器處理標頭或 JSON 主體的方式有關?
任何建議或故障排除技巧將不勝感激!
提前致謝!
以上是使用 Nginx 在 VPS 上部署的 Flask 應用程式中出現 @jwt_required() 錯誤的詳細內容。更多資訊請關注PHP中文網其他相關文章!