Skip to main content

Prompt d’IA

Vous utilisez l’IA pour intégrer Auth0 ? Ajoutez ce prompt à Cursor, Windsurf, Copilot, Claude Code ou à votre IDE préféré alimenté par l’IA pour accélérer le développement.
Prérequis : Avant de commencer, assurez-vous d’avoir installé les éléments suivants :
  • Python 3.9 ou version ultérieure (3.11+ recommandé)
  • pip 21+ ou Poetry 1.2+
  • OpenSSL - Nécessaire pour générer des secrets de session
Compatibilité des versions de FastAPI : ce guide de démarrage rapide nécessite FastAPI 0.115.11+ et Pydantic 2.12.5+.

Pour commencer

Ce guide de démarrage rapide montre comment ajouter l’authentification Auth0 à une application Web FastAPI en Python. Vous créerez une application Web sécurisée avec des fonctionnalités de connexion, de logout et de profil utilisateur à l’aide du Auth0 FastAPI SDK.
1

Créer un nouveau projet

Créez un nouveau dossier pour votre projet et configurez un environnement virtuel :
Créez et activez un environnement virtuel :
2

Installer le SDK Auth0 FastAPI

3

Configurez votre Auth0 App

Ensuite, vous devez créer une nouvelle application sur votre tenant Auth0 et ajouter les variables d’environnement à votre projet.Vous pouvez choisir de configurer automatiquement votre application Auth0 en exécutant une commande CLI, ou le faire manuellement via le Dashboard :
Exécutez la commande shell suivante dans le répertoire racine de votre projet pour créer une application Auth0 et générer un fichier .env :
Cette commande effectuera les actions suivantes :
  1. Vérifier si vous êtes authentifié (et vous inviter à vous connecter au besoin)
  2. Créer une Auth0 Regular Web Application configurée pour http://localhost:3000
  3. Générer un fichier .env avec AUTH0_DOMAIN, AUTH0_CLIENT_ID, AUTH0_CLIENT_SECRET, SESSION_SECRET et APP_BASE_URL
4

Configurer le SDK Auth0 FastAPI

Créez un fichier main.py à la racine de votre projet et ajoutez le code suivant :
main.py
SESSION_SECRET sert à chiffrer les cookies de session et doit être cryptographiquement sûr. Sans secret robuste (minimum de 32 octets), les sessions de votre application peuvent être compromises. Générez un secret sûr à l’aide de openssl rand -hex 64 et ne le consignez jamais dans le contrôle de version.SessionMiddleware doit être ajouté avant d’utiliser le SDK. Sans lui, FastAPI ne peut ni lire ni définir de cookies, et toutes les tentatives d’authentification échoueront silencieusement.HTTPS en Production est requis pour les cookies sécurisés (secure=True). Sans HTTPS, les cookies de session ne seront pas envoyés par les navigateurs, et les utilisateurs seront déconnectés après chaque requête.
5

Créer des routes et afficher le profil de l’utilisateur

Ajoutez les routes suivantes à votre fichier main.py pour créer une page d’accueil et une page de profil protégée :
main.py
Ceci crée :
  • Une page d’accueil (/) qui affiche un bouton de connexion lorsque l’utilisateur n’est pas connecté, ou le profil de l’utilisateur lorsqu’il est connecté
  • Un point de terminaison d’API protégé (/profile) qui renvoie les données de l’utilisateur en JSON et nécessite une authentification
  • Une mise en forme complète pour une expérience utilisateur soignée
6

Exécutez votre application

Sinon, si vous avez ajouté le bloc if __name__ == "__main__" à votre main.py :
VérificationVous devriez maintenant avoir une page de connexion Auth0 entièrement fonctionnelle accessible sur votre localhost.

Utilisation avancée

Créez des dépendances FastAPI personnalisées pour le contrôle d’accès basé sur les rôles :
Configurez le SDK pour demander des jetons d’accès pour votre API et les utiliser dans les appels en aval :
Faites évoluer votre application en stockant les sessions dans Redis plutôt que dans des cookies chiffrés :
Avantages des sessions avec état :
  • Aucune limite de taille des cookies - Stockez une quantité illimitée de données de session
  • Invalidation immédiate - Supprimez les sessions côté serveur
  • Prise en charge du logout backchannel - Gérez les événements de déconnexion d’Auth0
  • Mieux adapté aux systèmes distribués - Partagez les sessions entre plusieurs serveurs

Dépannage

Problème : Les utilisateurs sont connectés, mais les sessions ne sont pas conservées d’une requête à l’autre.Causes possibles et solutions :
  1. SessionMiddleware manquant Assurez-vous d’avoir ajouté SessionMiddleware à votre application :
  2. HTTP en production avec des cookies sécurisés Les cookies sécurisés nécessitent HTTPS. Si vous faites des tests en local sur HTTP, vous pouvez désactiver temporairement les cookies sécurisés (ce n’est pas recommandé en production) :
  3. SESSION_SECRET faible ou manquant Générez un secret robuste :
Problème : Après avoir cliqué sur « Se connecter », Auth0 affiche l’erreur suivante : « Callback URL mismatch »Cause : L’URL de rappel n’est pas enregistrée dans les paramètres de votre application Auth0.Solution :
  1. Allez dans Auth0 Dashboard → Applications → Your App → Settings
  2. Ajoutez votre URL de rappel à Allowed Callback URLs :
  3. En production, ajoutez votre URL de production :
  4. Cliquez sur Save Changes
Remarque : L’URL doit correspondre exactement, y compris le protocole (http/https) et le numéro de port.
Problème : Erreurs liées aux fonctions async ou aux boucles d’événements.Cause : FastAPI est un framework async et toutes les méthodes du SDK doivent être attendues avec await.Solution : Assurez-vous que toutes les fonctions de route sont async et que les méthodes du SDK sont correctement attendues :
Problème : Les sessions fonctionnent en local, mais pas en production.Cause : Les cookies sécurisés nécessitent HTTPS en production. L’indicateur secure=True empêche l’envoi des cookies sur des connexions HTTP non chiffrées.Solution :
  1. Configurez HTTPS sur votre serveur de production à l’aide de :
    • certificats Let’s Encrypt
    • SSL/TLS de votre fournisseur infonuagique (AWS ALB, Cloudflare, etc.)
    • proxy inverse (Nginx, Caddy, Traefik)
  2. Mettez à jour les URL de votre application Auth0 pour utiliser HTTPS :
  3. Assurez-vous que APP_BASE_URL utilise HTTPS :
Pour découvrir des fonctionnalités plus avancées et d’autres options de configuration, consultez la documentation de l’Auth0 FastAPI SDK.