- Python 3.9 ou une version ultérieure
- pip 20.0 ou une version ultérieure
- jq - Requis pour configurer Auth0 CLI
[async] pour la prise en charge de l’asynchrone.Pour commencer
Configurez votre environnement
Installez les dépendances
requirements.txt pour répertorier vos dépendances :requirements.txt répertorie toutes les dépendances du projet. Pour les installer, exécutez :Configurez votre application Auth0
- CLI
- Dashboard
.env :Créer la configuration d’authentification, les routes et les modèles
MemoryStateStore et MemoryTransactionStore) à des fins de démonstration. Ces mécanismes de stockage perdront toutes les données de session au redémarrage de votre application et ne fonctionneront pas dans des déploiements à instances multiples.Pour les applications de production, vous devez mettre en place un stockage persistant. Le SDK est indépendant du framework et vous oblige à fournir des implémentations personnalisées de StateStore et TransactionStore. Consultez les exemples officiels de stockage du SDK pour obtenir des directives détaillées sur la mise en œuvre de Redis, PostgreSQL ou d’autres solutions de stockage persistant.Lancez votre application
Utilisation avancée
Accès aux jetons d’API
Accès aux jetons d’API
- Définir
AUTH0_AUDIENCEdans votre fichier.env - Inclure
offline_accessdans vos scopes (pour les jetons d’actualisation) - Mettre à jour
authorization_paramsdansauth.py:
Configuration d’un stockage personnalisé
Configuration d’un stockage personnalisé
- Vous devez partager les sessions entre plusieurs serveurs
- Vos données de session dépassent les limites de taille des cookies
- Vous avez besoin d’une gestion centralisée des sessions pour la déconnexion par canal arrière
StateStore. Consultez les exemples du SDK pour obtenir des implémentations détaillées.Problèmes courants
MissingRequiredArgumentError
MissingRequiredArgumentError
AUTH0_SECRET est absente ou ne se charge pas correctement.Solution :- Vérifiez que votre fichier
.envse trouve à la racine du projet - Assurez-vous que
python-dotenvest installé :pip install python-dotenv - Générez un nouveau secret au besoin :
openssl rand -hex 64 - Ajoutez-le à
.env:AUTH0_SECRET=your_generated_secret - Redémarrez votre application Flask
Erreur : URL de rappel invalide
Erreur : URL de rappel invalide
- Vérifiez votre fichier
.env:AUTH0_REDIRECT_URI=http://localhost:5000/callback - Accédez à Auth0 Dashboard → Applications → Votre application → Settings
- Ajoutez
http://localhost:5000/callbackà Allowed Callback URLs - Cliquez sur Save Changes
- Redémarrez votre application Flask
Erreurs liées à la boucle d’événements AsyncIO
Erreurs liées à la boucle d’événements AsyncIO
Erreurs « Module introuvable »
Erreurs « Module introuvable »
- Assurez-vous que votre environnement virtuel est activé :
- Installez le SDK :
- Vérifiez l’installation :
Erreur ClaimDecodingFailed
Erreur ClaimDecodingFailed
- format JWT invalide
- données de session corrompues
- algorithmes de signature incompatibles
- décalage horaire entre votre serveur et Auth0
- Assurez-vous que votre
AUTH0_CLIENT_SECRETest correct dans le fichier.env - Vérifiez que l’heure de votre système est synchronisée (NTP) :
- Effacez les témoins du navigateur et relancez l’authentification
- Vérifiez que
AUTH0_DOMAINn’inclut pas le préfixehttps:// - Vérifiez que Auth0 Dashboard → Applications → Your App → Settings → Advanced → OAuth → JsonWebToken Signature Algorithm correspond à la configuration de votre SDK
Jeton expiré ou invalide
Jeton expiré ou invalide
- Le SDK gère automatiquement l’actualisation du jeton si vous incluez le scope
offline_access: - Pour les API, assurez-vous de demander de nouveaux jetons :
- Réglez la durée de vie des jetons dans Auth0 Dashboard → Applications → Your App → Settings → Advanced → OAuth
- Implémentez une gestion appropriée des erreurs afin de rediriger les utilisateurs vers la connexion lorsque les jetons expirent
CORS et erreurs inter-origines
CORS et erreurs inter-origines
- Ajoutez votre origine dans Auth0 Dashboard → Applications → Your App → Settings :
- Allowed Web Origins:
http://localhost:5000 - Allowed Callback URLs:
http://localhost:5000/callback - Allowed Logout URLs:
http://localhost:5000
- Allowed Web Origins:
- En production, ajoutez vos URL de production :
- Assurez-vous que votre application Flask a une configuration CORS appropriée si vous appelez les API Auth0 à partir du JavaScript côté client :
Limite de requêtes dépassée
Limite de requêtes dépassée
- Consultez Auth0 Dashboard → Monitoring → Logs pour obtenir des détails sur les limites de requêtes
- Implémentez un délai d’attente exponentiel pour les nouvelles tentatives :
- Vérifiez les limites de votre forfait Auth0
- Optimisez le flux d’authentification pour réduire les demandes de jetons inutiles
- Mettez les jetons en cache de façon appropriée au lieu d’en demander fréquemment de nouveaux