Prérequis :
- SDK Flutter 3.24.0+ et Dart 3.5.0+.
- Windows 10 ou une version ultérieure.
- Visual Studio 2022 avec la charge de travail Desktop development with C++.
- Compte Auth0 — inscrivez-vous gratuitement.
auth0_flutter 2.1.0-beta.1). L’API pourrait changer avant la disponibilité générale.auth0_flutter avec OAuth 2.0 flux de code d’autorisation + PKCE.
Premiers pas
1
Créer un projet Flutter pour Windows
Créez un nouveau projet Flutter avec prise en charge de Windows.Vérifiez que Windows est disponible :Vous devriez voir un appareil Windows de bureau dans la liste.
2
Installer le SDK Auth0 Flutter
Ajoutez la version bêta du SDK qui prend en charge Windows :Votre fichier
pubspec.yaml doit contenir :3
Configurer Auth0
Créez ou configurez une application Auth0 avec les URL de callback requises pour l’authentification d’une application de bureau Windows.
- Configuration rapide
- CLI
- Dashboard
Créez une application Native dans votre Auth0 Dashboard avec les paramètres suivants :
Vos identifiants :
- Domaine:
{yourDomain} - ID client:
{yourClientId}
L’URL
auth0flutter://callback est un schéma personnalisé qui redirige le callback du navigateur vers votre application de bureau une fois l’authentification terminée.4
Configurer les variables d’environnement
Créez un fichier
.env à la racine de votre projet :Ajoutez le fichier .env aux ressources de Flutter dans pubspec.yaml :5
Configurer le runner Windows
Le flux d’authentification sous Windows nécessite la configuration du callback dans le runner de votre application. Le plugin Flutter ne reçoit pas automatiquement les activations de schéma de protocole du système d’exploitation — vous devez donc ajouter la restriction à une seule instance et la redirection des URI.Remplacez le contenu de
windows/runner/main.cpp :Ce code :- Force l’exécution en instance unique au moyen d’un mutex Windows.
- Capture les URI
auth0flutter://callbacktransmises comme arguments de ligne de commande. - Redirige les URI des lancements secondaires vers l’instance déjà en cours d’exécution au moyen d’un canal nommé.
- Définit la variable d’environnement
PLUGIN_STARTUP_URLque le plugin Auth0 lira.
6
Enregistrez le schéma d’URL personnalisé
Enregistrez Double-cliquez sur le fichier Vérifiez que le schéma fonctionne :Ouvrez l’invite de commandes et exécutez :Votre application devrait se lancer (ou s’afficher au premier plan si elle est déjà ouverte).
auth0flutter comme schéma d’URL personnalisé pour que Windows achemine les URI de callback vers votre application.Créez un fichier windows/url_scheme.reg :Remplacez C:\path\to\your\app.exe par le chemin réel de votre fichier exécutable généré. Pendant le développement, il s’agit généralement de :.reg pour l’importer dans le registre de Windows.Pour un déploiement en production, enregistrez le schéma d’URL personnalisé par programmation dans le programme d’installation de votre application (MSIX, Inno Setup, etc.) plutôt que de vous fier à un fichier
.reg.7
Implémenter la connexion et la déconnexion
Créez
lib/auth_service.dart pour gérer l’authentification Windows :Le SDK Flutter Windows d’Auth0 ne prend actuellement pas en charge la gestion des identifiants. Vous devez stocker manuellement les identifiants si vous avez besoin que les sessions persistent d’un redémarrage de l’application à l’autre.
8
Afficher les renseignements du profil utilisateur
Créez l’interface utilisateur principale de l’application dans le fichier
lib/main.dart :9
Lancez votre application
Compilez et exécutez l’application :Flux attendu :
- L’application se lance avec un bouton Log In.
- Sélectionnez Log In. Votre navigateur système ouvre la page Auth0 Universal Login.
- Terminez l’authentification dans le navigateur.
- Le navigateur redirige vers
auth0flutter://callback→ votre application revient à l’avant-plan. - Le nom, le courriel et la photo de profil de l’utilisateur s’affichent.
VérificationVous devriez maintenant disposer d’une expérience de connexion Auth0 entièrement fonctionnelle dans votre application Flutter Windows. L’application ouvre le navigateur système pour Auth0 Universal Login, reçoit le callback au moyen du schéma d’URL personnalisé et affiche le profil de l’utilisateur authentifié.
Dépannage et utilisation avancée
Problèmes courants et solutions
Problèmes courants et solutions
Le navigateur s’ouvre, mais l’application ne reçoit pas le callback
Symptôme : la connexion Auth0 réussit dans le navigateur, mais l’application ne reçoit jamais les identifiants.Correctif :- Ouvrez l’Éditeur du Registre →
HKEY_CURRENT_USER\Software\Classes\auth0flutter\shell\open\commandet confirmez le chemin vers votre fichier.exe. - Testez avec
start auth0flutter://testdans l’Invite de commandes — votre application devrait se lancer. - Assurez-vous que
windows/runner/main.cppinclut le code du serveur de pipe et du mutex. - Vérifiez qu’aucune ancienne instance n’est encore en cours d’exécution dans le Gestionnaire des tâches.
- Recompilez complètement :
flutter clean && flutter run -d windows.
L’authentification expire après 5 minutes
Symptôme : la connexion semble bloquée et finit par échouer.Correctif : l’application n’a jamais reçu l’URI de callback. Vérifiez ce qui suit :- L’entrée du registre pointe vers le bon chemin de l’exécutable.
- Le nom du mutex
auth0flutter_single_instance_mutexest cohérent dansmain.cpp. - Aucun pare-feu ni antivirus ne bloque le pipe nommé.
- Fermez toutes les anciennes instances et recompilez.
Une deuxième instance de l’application se lance au lieu de transférer l’URI
Symptôme : une nouvelle fenêtre s’ouvre au lieu que l’application existante reçoive le callback.Correctif :- Fermez toutes les instances en cours d’exécution dans le Gestionnaire des tâches.
- Assurez-vous que le nom du mutex est cohérent dans
main.cpp. - Recompilez avec la commande suivante :
flutter clean && flutter run -d windows.
WindowsWebAuthentication introuvable
Symptôme : erreur de compilation faisant référence àwindowsWebAuthentication.Correctif : assurez-vous que votre pubspec.yaml précise la version bêta :flutter pub get pour mettre à jour.Erreur de non-correspondance de Callback URL
Symptôme : erreur “redirect_uri_mismatch” renvoyée par Auth0.Correctif :- Vérifiez que Allowed Callback URLs dans Auth0 Dashboard → paramètres de l’application est exactement
auth0flutter://callback. - Assurez-vous que le paramètre
appCustomURLdans votre code correspond à :'auth0flutter://callback'. - Vérifiez qu’il n’y a pas de barre oblique finale ni d’espace superflu.
Utilisation d’un serveur intermédiaire
Utilisation d’un serveur intermédiaire
Lorsque Auth0 redirige directement vers un schéma personnalisé, le navigateur peut afficher une invite ou laisser un onglet vide. Pour une expérience plus fluide, utilisez un serveur HTTPS intermédiaire :La page du serveur peut afficher “Redirecting…” et se fermer d’elle-même pour une expérience plus propre.
- Configurez un point de terminaison sur le serveur (par exemple,
https://your-app.example.com/callback) qui redirige versauth0flutter://callback?code=...&state=.... - Dans Auth0 Dashboard → paramètres de l’application, définissez Allowed Callback URLs à
https://your-app.example.com/callback. - Passez les deux URL à la méthode de connexion :
Scopes et Audience personnalisés
Scopes et Audience personnalisés
Demandez des scopes supplémentaires ou une audience d’API :Configurez l’API dans Auth0 Dashboard → Applications > APIs avant d’utiliser le paramètre
audience.Prochaines étapes
- SDK Flutter d’Auth0 sur GitHub — code source et suivi des problèmes.
- SDK Flutter d’Auth0 sur pub.dev — référence d’API.
- Guide de démarrage rapide Flutter (Android, iOS, macOS, Web) — guides pour d’autres plateformes.
- Bonnes pratiques de stockage des jetons — gestion sécurisée des informations d’identification.
- Auth0 Universal Login — personnaliser l’expérience de connexion.