Passer au contenu principal

Utiliser l’IA pour intégrer Auth0

Si vous utilisez un assistant de codage IA comme Claude Code, Cursor ou GitHub Copilot, vous pouvez ajouter l’authentification Auth0 automatiquement en quelques minutes à l’aide d’Agent Skills.Installer :
Demandez ensuite à votre assistant IA :
Votre assistant IA créera automatiquement votre application Auth0, récupérera les informations d’identification, ajoutera la dépendance au SDK auth0_flutter, configurera web/index.html, définira les URL de callback et implémentera les flux de connexion et de déconnexion. Documentation complète d’Agent Skills →
Prérequis : Avant de commencer, assurez-vous d’avoir installé ce qui suit :Vérifiez l’installation : flutter --versionSi vous n’avez pas d’application Web Flutter, créez-en une : flutter create --platforms=web my_app

Pour commencer

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

Créer un nouveau projet

Créez une nouvelle application Flutter Web pour ce guide de démarrage rapide :
Ouvrez le projet :
2

Installer le SDK Flutter d’Auth0

Ajoutez le SDK Flutter d’Auth0 à votre projet à l’aide de la CLI Flutter :
Le SDK nécessite que la bibliothèque Auth0 SPA JS soit chargée dans votre application Web. Ajoutez la balise <script> suivante dans votre fichier web/index.html, avant la balise de fermeture </body> :
web/index.html
Le script Auth0 SPA JS est nécessaire au fonctionnement du SDK Flutter Web. Sans lui, l’authentification ne fonctionnera pas.
3

Configurez votre application Auth0

Ensuite, vous devez créer une nouvelle application sur votre tenant Auth0.Vous pouvez le faire automatiquement en exécutant une commande CLI, ou manuellement dans le Dashboard :
Exécutez la commande shell suivante à la racine de votre projet pour créer une application Auth0 :macOS / Linux :
Windows (PowerShell) :
Copiez les valeurs domain et client_id dans la sortie. Vous en aurez besoin à l’étape suivante.
Si vous n’avez pas encore installé l’Auth0 CLI, exécutez :
Ensuite, ouvrez une session avec auth0 login.
4

Configurer le SDK

Créez une instance de la classe Auth0Web à l’aide des valeurs de domaine et d’ID client d’Auth0.Créez un nouveau fichier lib/auth0_service.dart :
lib/auth0_service.dart
Remplacez YOUR_AUTH0_DOMAIN par le domaine de votre locataire Auth0 (p. ex. dev-abc123.us.auth0.com) et YOUR_AUTH0_CLIENT_ID par l’ID client de votre application dans le tableau de bord.
Définir cacheLocation: CacheLocation.localStorage permet de conserver les sessions après le rechargement des pages.
5

Créer la vue principale

Remplacez le contenu de lib/main.dart par le code suivant :
lib/main.dart
Points clés :
  • onLoad() est appelé dans initState() pour traiter le callback d’authentification
  • loginWithRedirect() redirige les utilisateurs vers la page de connexion universelle d’Auth0
  • logout() supprime la session et redirige vers votre application
  • Les informations du profil utilisateur sont accessibles par credentials.user
6

Lancez votre application

Lancez votre application Web Flutter sur le port 3000 :
Flutter 3.24.0 et les versions plus récentes prennent en charge la compilation WASM pour améliorer les performances :
Point de vérificationVous devriez maintenant avoir une page de connexion Auth0 entièrement fonctionnelle à l’adresse http://localhost:3000. Lorsque vous :
  1. Cliquez sur “Log In” - vous êtes redirigé vers la page Universal Login d’Auth0
  2. Terminez l’authentification - vous êtes redirigé vers votre application
  3. Cliquez sur “View Profile” - vous voyez les renseignements de votre compte
  4. Cliquez sur “Log Out” - vous êtes déconnecté à la fois de votre application et d’Auth0

Utilisation avancée

Configurez le SDK pour demander un jeton d’accès afin d’appeler des API protégées :
lib/auth0_service.dart
Utilisez le jeton d’accès pour appeler votre API :
Transmettez des paramètres supplémentaires au flux de connexion :
Mettez en place une gestion appropriée des erreurs en cas d’échec de l’authentification :
Vérifiez si l’utilisateur est déjà authentifié sans afficher la page de connexion :

Dépannage

Erreur « URL de rappel non conforme »

Problème : L’URL de rappel ne correspond pas à celle configurée dans Auth0.Solution : Assurez-vous que l’URL de rappel dans votre code correspond exactement à celle indiquée dans le tableau de bord Auth0 :
  1. Accédez à Auth0 Dashboard → Applications → Your App → Settings
  2. Vérifiez que Allowed Callback URLs inclut http://localhost:3000
  3. L’URL doit correspondre exactement (sans barre oblique finale, sauf si elle est aussi incluse dans le code)

L’authentification ne fonctionne pas

Problème : Le bouton de connexion ne fait rien ou l’authentification échoue.Solution : Vérifiez que le script Auth0 SPA JS est bien chargé dans web/index.html :
Ce script doit être présent avant la balise fermante </body>.

L’utilisateur est déconnecté après l’actualisation de la page

Problème : La session de l’utilisateur n’est pas conservée lors du rechargement de la page.Solutions :
  1. Assurez-vous que Allowed Web Origins inclut http://localhost:3000 dans le tableau de bord Auth0
  2. Utilisez cacheLocation: CacheLocation.localStorage lors de la création de l’instance Auth0Web
  3. Vérifiez que onLoad() est appelé dans le initState() de votre widget

Erreur « État invalide »

Problème : L’état ne correspond pas pendant le rappel d’authentification.Solutions :
  1. Videz le cache du navigateur et le stockage local
  2. Assurez-vous de ne pas ouvrir plusieurs onglets pendant la connexion
  3. Vérifiez que votre URL de rappel est correcte

Erreurs CORS dans la console du navigateur

Problème : Erreurs de partage de ressources entre origines croisées.Solution :
  1. Ajoutez http://localhost:3000 à Allowed Web Origins dans le tableau de bord Auth0
  2. Assurez-vous d’utiliser le port 3000 (conformément à votre configuration)

Prochaines étapes

Maintenant que l’authentification fonctionne, pensez à explorer les options suivantes :

Ressources