Prérequis : Avant de commencer, assurez-vous d’avoir installé ce qui suit :
- Flutter 3.0 ou une version ultérieure, configuré pour le Web
- Dart 2.17 ou une version ultérieure
- Une connaissance de base de l’interface de ligne de commande Flutter
flutter --versionSi vous n’avez pas d’application Web Flutter, créez-en une : flutter create --platforms=web my_appPour commencer
Créer un nouveau projet
Créez une nouvelle application Flutter Web pour ce guide de démarrage rapide :Ouvrez le projet :
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
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 :
- CLI
- 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.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
Créer la vue principale
Remplacez le contenu de Points clés :
lib/main.dart par le code suivant :lib/main.dart
onLoad()est appelé dansinitState()pour traiter le callback d’authentificationloginWithRedirect()redirige les utilisateurs vers la page de connexion universelle d’Auth0logout()supprime la session et redirige vers votre application- Les informations du profil utilisateur sont accessibles par
credentials.user
Point de vérificationVous devriez maintenant avoir une page de connexion Auth0 entièrement fonctionnelle à l’adresse http://localhost:3000. Lorsque vous :
- Cliquez sur “Log In” - vous êtes redirigé vers la page Universal Login d’Auth0
- Terminez l’authentification - vous êtes redirigé vers votre application
- Cliquez sur “View Profile” - vous voyez les renseignements de votre compte
- Cliquez sur “Log Out” - vous êtes déconnecté à la fois de votre application et d’Auth0
Utilisation avancée
Appel d’API protégées
Appel d’API protégées
Configurez le SDK pour demander un jeton d’accès afin d’appeler des API protégées :Utilisez le jeton d’accès pour appeler votre API :
lib/auth0_service.dart
Paramètres de connexion personnalisés
Paramètres de connexion personnalisés
Transmettez des paramètres supplémentaires au flux de connexion :
Gestion des erreurs de connexion
Gestion des erreurs de connexion
Mettez en place une gestion appropriée des erreurs en cas d’échec de l’authentification :
Authentification silencieuse
Authentification silencieuse
Vérifiez si l’utilisateur est déjà authentifié sans afficher la page de connexion :
Dépannage
Problèmes courants et solutions
Problèmes courants et solutions
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 :- Accédez à Auth0 Dashboard → Applications → Your App → Settings
- Vérifiez que Allowed Callback URLs inclut
http://localhost:3000 - 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é dansweb/index.html :</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 :- Assurez-vous que Allowed Web Origins inclut
http://localhost:3000dans le tableau de bord Auth0 - Utilisez
cacheLocation: CacheLocation.localStoragelors de la création de l’instance Auth0Web - Vérifiez que
onLoad()est appelé dans leinitState()de votre widget
Erreur « État invalide »
Problème : L’état ne correspond pas pendant le rappel d’authentification.Solutions :- Videz le cache du navigateur et le stockage local
- Assurez-vous de ne pas ouvrir plusieurs onglets pendant la connexion
- 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 :- Ajoutez
http://localhost:3000à Allowed Web Origins dans le tableau de bord Auth0 - Assurez-vous d’utiliser le port 3000 (conformément à votre configuration)
Prochaines étapes
- Démarrage rapide de l’application native Flutter - Créez une application mobile native avec Auth0
- Appeler des API protégées - Utilisez des jetons d’accès pour appeler vos API d’arrière-plan
- Personnaliser Universal Login - Adaptez l’expérience de connexion à votre image de marque
- Ajouter des connexions sociales - Activez Google, GitHub et d’autres modes de connexion sociale
- Mettre en œuvre l’AMF - Ajoutez l’authentification multifacteur
Ressources
- Auth0 Flutter SDK GitHub - Code source et exemples
- Documentation Flutter - Pour en savoir plus sur Flutter
- Communauté Auth0 - Obtenez de l’aide auprès de la communauté