皆さんこんにちは、
Nginx を使用して VPS サーバーに Flask アプリケーションをデプロイしているときに問題が発生しました。このアプリは、ローカルでテストした場合と Heroku でホストした場合でも正常に動作します。ただし、私の VPS にデプロイすると、@jwt_required() で保護されたルートはすべて 422 エラー をスローします。
詳細:
-
サーバーのセットアップ:
- Ubuntu VPS
- リバース プロキシとしての Nginx
- Gunicorn は Flask アプリを実行します
- JWT 認証用の Flask-JWT-Extended
-
機能:
- @jwt_required() デコレーターのないすべての API ルートは完全に機能します。
- 同じアプリケーションを Heroku にデプロイすると、(@jwt_required() を使用しても) 期待どおりに動作します。
-
失敗したこと:
- VPS セットアップで @jwt_required() デコレータを使用するルートは、422 エラーを返します。
- @jwt_required() を削除すると、ルートが正常に動作できるようになります。
私が試したこと:
- JWT トークンが Authorization ヘッダーで正しく渡されることを確認しました。
- SECRET_KEY とトークンの有効期限の設定が一致していないかどうかを確認しました。
- アプリが正しい ACCESS_TOKEN_EXPIRES と ALGORITHM を使用していることを確認しました。
- Postman とcurl でテストしましたが、違いはありません。
Nginx または Gunicorn の構成と何か関係があるのではないかと思いますが、何が関係しているのかわかりません。それはサーバーによるヘッダーまたは JSON 本文の処理方法に関係しているのでしょうか?
ご提案やトラブルシューティングのヒントをいただければ幸いです。
よろしくお願いします!
以上がNginx を使用した VPS にデプロイされた Flask アプリの @jwt_required() でのエラーの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。