Maison  >  Article  >  développement back-end  >  Erreur avec @jwt_required() dans l'application Flask déployée sur VPS avec Nginx

Erreur avec @jwt_required() dans l'application Flask déployée sur VPS avec Nginx

Patricia Arquette
Patricia Arquetteoriginal
2024-11-26 03:09:10168parcourir

Error with @jwt_required() in Flask App Deployed on VPS with Nginx

Salut à tous,

Je suis confronté à un problème lors du déploiement de mon application Flask sur un serveur VPS avec Nginx. L'application fonctionne correctement lorsqu'elle est testée localement et également lorsqu'elle est hébergée sur Heroku. Cependant, lorsqu'elle est déployée sur mon VPS, toute route protégée par @jwt_required() génère une erreur 422.

Détails:

  • Configuration du serveur :

    • VPS Ubuntu
    • Nginx comme proxy inverse
    • Gunicorn pour exécuter l'application Flask
    • Flask-JWT-Extended pour l'authentification JWT
  • Ce qui fonctionne :

    • Toutes les routes API sans le décorateur @jwt_required() fonctionnent parfaitement.
    • La même application fonctionne comme prévu (même avec @jwt_required()) lorsqu'elle est déployée sur Heroku.
  • Ce qui échoue :

    • Toute route utilisant le décorateur @jwt_required() sur la configuration VPS renvoie une erreur 422.
    • La suppression de @jwt_required() permet aux routes de fonctionner normalement.

Choses que j'ai essayées :

  • Vérifié que le jeton JWT est correctement transmis dans l'en-tête Autorisation.
  • Vérification des paramètres SECRET_KEY et d'expiration du jeton qui ne correspondent pas.
  • Confirmé que l'application utilise les ACCESS_TOKEN_EXPIRES et ALGORITHM corrects.
  • Testé avec Postman et curl : aucune différence.

Je soupçonne que cela pourrait avoir quelque chose à voir avec les configurations Nginx ou Gunicorn, mais je n'arrive pas à comprendre quoi. Cela pourrait-il être lié à la façon dont les en-têtes ou les corps JSON sont gérés par le serveur ?

Toutes suggestions ou conseils de dépannage seraient grandement appréciés !

Merci d'avance !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn