Ajouter une fonctionnalité de connexion à votre application Flutter

Auth0 vous permet d’ajouter rapidement l’authentification et d’accéder aux informations relatives au profil de l’utilisateur dans votre application. Ce guide explique comment intégrer Auth0 à une application Flutter à l’aide de la trousse SDK Flutter Auth0.

Ce guide de démarrage rapide suppose que vous avez déjà une application Flutter installée et active. Si ce n’est pas le cas, consultez les guides « Getting started » (Premiers pas) de Flutter pour commencer avec une application simple.

Vous devez également être familiarisé avec Outil de ligne de commande Flutter.

1

Configuration d’Auth0

Pour utiliser les services Auth0, vous devez avoir une application installée dans Auth0 Dashboard. L’application Auth0 est l’endroit où vous allez configurer le fonctionnement de l’authentification pour votre projet.

Configurer une application Auth0.

Utilisez le sélecteur interactif pour créer une nouvelle application Auth0 ou sélectionner une application Auth0 Native existante. Dans Auth0, il est attribué à chaque application un identifiant client unique alphanumérique que votre code d’application utilisera pour appeler les API Auth0 via la trousse SDK.

Tous les paramètres que vous configurez à l’aide de ce guide rapide seront automatiquement mis à jour pour votre application dans le Dashboard, qui est l’endroit où vous pourrez gérer vos applications à l’avenir.

Si vous préférez explorer une configuration complète, consultez plutôt un exemple d’application.

Configurer les URL de rappel et les URL de déconnexion

Les Callback URL et les URL de déconnexion sont des URL qu’invoque Auth0 pour rediriger vers votre application. Auth0 invoque l’URL de rappel après avoir authentifié l’utilisateur, et l’URL de déconnexion après avoir supprimé le témoin de session. Si les Callback URL et les URL de déconnexion ne sont pas définies, les utilisateurs ne pourront pas se connecter ou se déconnecter de l’application et recevront un message d’erreur.

Définissez les Callback URL et les URL de déconnexion sur les valeurs suivantes, en fonction de votre plateforme.

Android

SCHEME://{yourDomain}/android/YOUR_PACKAGE_NAME/callback

iOS

https://{yourDomain}/ios/YOUR_BUNDLE_IDENTIFIER/callback,

YOUR_BUNDLE_IDENTIFIER://{yourDomain}/ios/YOUR_BUNDLE_IDENTIFIER/callback

macOS

https://{yourDomain}/macos/YOUR_BUNDLE_IDENTIFIER/callback,

YOUR_BUNDLE_IDENTIFIER://{yourDomain}/macos/YOUR_BUNDLE_IDENTIFIER/callback

Par exemple, si l’identifiant de votre bundle iOS était com.example.MyApp et votre domaine Auth0 était example.us.auth0.com, alors cette valeur serait :

https://example.us.auth0.com/ios/com.example.MyApp/callback,

com.example.MyApp://example.us.auth0.com/ios/com.example.MyApp/callback

2

Installer la trousse SDK Flutter Auth0

Ajoutez la trousse SDK Flutter Auth0 au projet :

flutter pub add auth0_flutter

3

Configurer Android

Si vous ne développez pas pour la plateforme Android, ignorez cette étape.

La trousse SDK nécessite des placeholder dans le manifeste. Auth0 utilise des placeholder en interne pour définir un intent-filter, qui capture l’URL de rappel d’authentification. Vous devez définir le domaine du locataire Auth0 et le schéma de l’URL de rappel.

L’exemple utilise les placeholder suivants :

  • auth0Domain : Le domaine de votre locataire Auth0. En général, vous le trouverez dans Auth0 Dashboard sous vos Application Settings (Paramètres d’application) dans le champ Domain (Domaine). Si vous utilisez un domaine personnalisé, indiquez dans ce champ votre domaine personnalisé.

  • auth0Scheme : Le schéma à utiliser. Peut être un schéma personnalisé, ou https si vous souhaitez utiliser les liens d’application Android. Vous pouvez en savoir plus sur la définition de cette valeur dans le SDK README d’Auth0.Android.

Exécutez Sync Project with Gradle Files dans Android Studio pour appliquer vos modifications.

4

Configurer iOS/macOS

Si vous ne développez pas pour les plateformes iOS ou macOS, ignorez cette étape.

Configurer Team ID et l’identifiant du bundle

Allez à la page des paramètres de votre application Auth0, faites défiler jusqu’en bas, et ouvrez Advanced Settings (Paramètres avancés) > Device Settings (Paramètres de l’appareil). Dans la section iOS, définissez Team ID sur votre Apple Team ID et App ID sur l’identificateur du bundle de votre application.

null

Cette action ajoutera votre application au fichier apple-app-site-association de votre locataire Auth0.

Ajouter la capacité de domaine associé

Ouvrez votre application dans Xcode en exécutant open ios/Runner.xcworkspace (ou open macos/Runner.xcworkspace pour macOS). Allez à l’ongletSigning and Capabilities (Signature et capacités) des paramètres de la cible de l’exécuteur, puis appuyez sur le bouton + Capability (Capabilité). Puis sélectionnez Associated Domains (Domaines associés).

null

Ensuite, ajoutez l’entrée suivante sous Associated Domains (Domaines associés) :

webcredentials:{yourDomain}

Si vous avez un domaine personnalisé, utilisez-le à la place du domaine Auth0 de la page des paramètres.

5

Ajouter une fonctionnalité de connexion à votre application

La connexion universelle est le moyen le plus simple de mettre en place l’authentification dans votre application. Nous recommandons de l’utiliser pour une meilleure expérience, une meilleure sécurité et un plus grand nombre de fonctionnalités.

Intégrez la connexion universelle Auth0 dans votre application Flutter en utilisant la classe Auth0. Redirigez vos utilisateurs vers la page de connexion universelle Auth0 en utilisant webAuthentication().login(). Il s’agit d’une fonctionnalité Future pour que vous récupériez les jetons de l’utilisateur.

Android : si vous utilisez un schéma personnalisé, passez ce schéma à la méthode de connexion afin que le SDK puisse assurer un aller-retour vers la page de connexion :

await auth0.webAuthentication(scheme: ’YOUR CUSTOM SCHEME’).login();

Lorsqu’un utilisateur se connecte, il est redirigé vers votre application. Puis, vous pouvez accéder à l’identifiant et aux jetons d’accès de cet utilisateur.

checkpoint.header

Ajoutez un bouton à votre application qui appelle webAuthentication().login() et déconnecte l’utilisateur de votre application. Vérifiez que vous êtes redirigé vers Auth0 pour l’authentification, puis renvoyé vers votre application.

Vérifiez que vous pouvez accéder aux jetons sur le résultat de l’appel login.

6

Ajouter une fonctionnalité de déconnexion à votre application

Pour déconnecter les utilisateurs, redirigez-les vers le point de terminaison Auth0 pour effacer leur session de connexion en appelant la trousse SDK Flutter Auth0 webAuthentication().logout(). En savoir plus sur la déconnexion d’Auth0.

Android : si vous utilisez un schéma personnalisé, passez ce schéma à la méthode de déconnexion afin que la trousse SDK puisse renvoyer correctement vers votre application :

await auth0.webAuthentication(scheme: ’YOUR CUSTOM SCHEME’).logout();

checkpoint.header

Ajoutez un bouton à votre application qui appelle webAuthentication().logout() et déconnecte l’utilisateur de votre application. Lorsque vous le sélectionnez, vérifiez que votre application Flutter vous redirige vers le point de terminaison de déconnexion et vice-versa. Vous ne devriez pas être connecté à votre application.

7

Afficher les informations du profil utilisateur

Le profil utilisateur récupère automatiquement les propriétés du profil utilisateur pour vous lorsque vous appelez webAuthentication().login(). L’objet retourné à partir de l’étape de connexion contient une propriété user avec toutes les propriétés du profil utilisateur, qui est renseigné en décodant le jeton d’ID.

checkpoint.header

Connectez-vous et inspectez la propriété user par rapport au résultat. Vérifiez les informations de profil utilisateur actuel, telles que son email ou name.

Next Steps

Excellent work! If you made it this far, you should now have login, logout, and user profile information running in your application.

This concludes our quickstart tutorial, but there is so much more to explore. To learn more about what you can do with Auth0, check out:

Did it work?

Any suggestion or typo?

Edit on GitHub
Sign Up

Sign up for an or to your existing account to integrate directly with your own tenant.