Utiliser l’IA pour intégrer Auth0
Utiliser l’IA pour intégrer Auth0
Commencer
Utilisez ce Quickstart pour configurer votre application Kotlin Multiplatform afin que les utilisateurs finaux puissent se connecter et se déconnecter au moyen d’Universal Login d’Auth0, enregistrer les jetons de façon sécuritaire et afficher les profils utilisateur — le tout à partir d’un code Kotlin partagé qui s’exécute autant sur Android que sur iOS.Créer un projet Kotlin Multiplatform
com.example.app comme application ID / identifiant de bundle. Remplacez cet espace réservé par le vôtre, puisqu’il devient partie intégrante de vos callback URLs Auth0.Ajoutez le SDK Auth0 avec Gradle
commonMain de votre module partagé. La library est publiée sur Maven Central; aucune configuration de repository supplémentaire n’est donc requise.Mettez à jour composeApp/build.gradle.kts :Configurez votre application Auth0
- Accédez au Auth0 Dashboard.
- Sélectionnez Applications > Applications > Create Application.
- Dans le popup, saisissez un nom pour votre application, sélectionnez Native comme type d’application, puis choisissez Create.
- Passez à l’onglet Settings de la page Application Details, puis copiez le Domain et le Client ID. Vous devrez les ajouter à votre code à une étape ultérieure.
{yourDomain} par votre véritable domaine Auth0 (p. ex. dev-abc123.us.auth0.com) et com.example.app par l’ID d’application ou l’identifiant de bundle de votre application.SCHEME://YOUR_DOMAIN/android/APPLICATION_ID/callback pour Android et SCHEME://YOUR_DOMAIN/ios/BUNDLE_ID/callback pour iOS. Par défaut, le schéma correspond à l’ID d’application ou à l’identifiant de bundle.applicationId (Android) et à votre identifiant de bundle (iOS). Si l’authentification échoue, vérifiez que ces valeurs sont bien identiques.Enregistrez le schéma de redirection sur chaque plateforme
RedirectActivity (Android, fusionnée automatiquement) et utilise ASWebAuthenticationSession (iOS) pour intercepter le callback. Il ne vous reste qu’à déclarer le schéma d’URL sur chaque plateforme.Android : ajoutez les espaces réservés du manifest dans votre fichier de build Android. La RedirectActivity du SDK lit ces valeurs :AndroidManifest.xml demande la permission Internet :iosApp/iosApp/Info.plist (ou dans Xcode → cible → Info → URL Types) :Initialiser le SDK Auth0
commonMain, créez le client Auth0 une seule fois, puis réutilisez-le. Il contient la couche de transport partagée par Web Auth, l’Authentication API et le Credentials Manager.Créez composeApp/src/commonMain/kotlin/Auth0Config.kt :auth0.domain et auth0.clientId depuis local.properties et les expose au moyen d’une configuration générée. Le Domain et le Client ID proviennent tous deux des Application Settings dans le Auth0 Dashboard. Le domain ne doit pas inclure le schéma https://.Implement Login et Logout
suspend (coroutine) qui retourne un Result<Success, Error> : aucune exception n’est levée pour les erreurs de domaine. Encapsulez les appels dans un ViewModel afin que votre interface Compose puisse observer le state.Créez composeApp/src/commonMain/kotlin/AuthViewModel.kt :Afficher le profil de l’utilisateur
userInfo de l’Authentication API avec l’access token afin de récupérer le profil de l’utilisateur authentifié.credentialsManager.hasValidCredentials() retourne true lorsqu’une session stockée et non expirée est disponible. Utilisez credentialsManager.getCredentials() pour récupérer un access token valide et renouveler automatiquement celui-ci à l’aide du refresh token lorsque nécessaire.Lancez votre appli
- L’application démarre en affichant un bouton “Log In”.
- Touchez “Log In” → le navigateur du système ouvre la page Auth0 Universal Login → complétez la connexion.
- Le contrôle revient automatiquement à l’application et le bouton devient “Log Out”.
- Réussite !
Dépannage et options avancées
Erreur de non-correspondance de l’URL de rappel
Erreur de non-correspondance de l’URL de rappel
SCHEME://YOUR_DOMAIN/android/APPLICATION_ID/callback pour Android et SCHEME://YOUR_DOMAIN/ios/BUNDLE_ID/callback pour iOS. Le SCHEME (par défaut : l’ID de votre application) et le package ou bundle doivent correspondre exactement aux valeurs de votre projet. Les URL sont sensibles à la casse et le schéma doit être en minuscules.Connexion retourne Result.Failure avec une erreur réseau ou de délai d’expiration
Connexion retourne Result.Failure avec une erreur réseau ou de délai d’expiration
domain dans Auth0Account correspond au domaine de votre tenant, sans le schéma https:// (par exemple, your-tenant.us.auth0.com). Sur un appareil physique, assurez-vous qu’il a accès au réseau. Vous pouvez augmenter les délais d’expiration au moyen de NetworkingConfiguration transmis à Auth0Account.getCredentials échoue après la connexion
getCredentials échoue après la connexion
offline_access par défaut (ce qui renvoie un jeton d’actualisation). Si vous remplacez scope dans LoginOptions, incluez offline_access et activez Rotation des jetons d’actualisation pour l’application dans l’Auth0 Dashboard.La compilation Android échoue lors de la fusion de RedirectActivity
La compilation Android échoue lors de la fusion de RedirectActivity
auth0Domain / auth0Scheme sont absents; le RedirectActivity fusionné du SDK n’a donc aucune valeur à laquelle se lier.Correctif : Assurez-vous que les deux espaces réservés sont définis dans le bloc defaultConfig de composeApp/build.gradle.kts. Si vous utilisez plusieurs variantes de compilation, définissez-les dans chacune d’elles.Restaurer une session au démarrage
Restaurer une session au démarrage
Appeler votre propre API avec un jeton d’accès
Appeler votre propre API avec un jeton d’accès
Déconnexion fédérée
Déconnexion fédérée
Prochaines étapes
- Explorez l’ensemble du SDK Auth0 Kotlin Multiplatform et son fichier
EXAMPLES.mdpour les organizations, DPoP, les passkeys et le stockage personnalisé. - Exécutez l’exemple d’application Android + iOS complet.
- Apprenez-en plus sur Auth0 Universal Login et les jetons d’actualisation.