Passer au contenu principal

Utiliser l’IA pour intégrer Auth0

Si vous utilisez un assistant de programmation IA comme Claude Code, Cursor ou GitHub Copilot, vous pouvez ajouter l’authentification Auth0 automatiquement en quelques minutes à l’aide des agent skills.Commencez par installer les agent skills d’Auth0 :
Ensuite, demandez à votre assistant IA :
Votre assistant IA créera automatiquement votre application Auth0, récupérera les informations d’identification, installera le SDK Auth0 React et les plugins Capacitor, configurera les liens profonds et mettra en place les flux de connexion et de déconnexion avec intégration au navigateur natif. Pour en savoir plus, consultez les agent skills d’Auth0.

Pour commencer

Ce guide de démarrage rapide montre comment ajouter l’authentification Auth0 à une application Ionic React avec Capacitor. Vous créerez une application mobile avec des fonctionnalités de connexion, de déconnexion et de profil utilisateur à l’aide du SDK React d’Auth0 et de l’intégration au navigateur natif de Capacitor.
1

Créer un nouveau projet

Créez une nouvelle application Ionic React avec Capacitor
Ouvrez le projet
Assurez-vous d’utiliser le paquet @ionic/cli (et non le paquet ionic, désormais obsolète). Si vous voyez des erreurs concernant --npm-client pendant la création du projet, mettez votre CLI à jour :
Si vous avez déjà une application Ionic React, assurez-vous que Capacitor est activé. Vous pouvez l’ajouter avec ionic integrations enable capacitor, puis exécuter npx cap init.
2

Installez le SDK React d’Auth0 et les plugins Capacitor

Le modèle de départ Ionic peut générer react@19.0.0, qui n’est pas compatible avec le SDK React d’Auth0. Assurez-vous d’abord d’utiliser une version de React prise en charge :
Installez ensuite le SDK Auth0 et les plug-ins Capacitor :
Le plugin Browser de Capacitor sur iOS utilise SFSafariViewController, qui, sur iOS 11+, ne partage pas les cookies avec Safari sur l’appareil. Cela signifie que le SSO ne fonctionnera pas sur ces appareils. Si vous avez besoin du SSO, utilisez un plugin compatible qui s’appuie sur ASWebAuthenticationSession.
3

Configurez votre application Auth0

Ensuite, vous devez créer une nouvelle application dans votre tenant Auth0 et ajouter les variables d’environnement à votre projet.Vous disposez de trois options pour configurer votre application Auth0 : utiliser l’outil Quick Setup (recommandé), exécuter une commande CLI ou configurer manuellement via le Dashboard.
Tout au long de ce guide de démarrage rapide, YOUR_PACKAGE_ID correspond à l’identifiant de package de votre application. Il s’agit de la valeur du champ appId dans votre fichier capacitor.config.ts (par ex. io.ionic.starter). Consultez le schéma de configuration de Capacitor pour en savoir plus.
Créez une application Auth0 et copiez le fichier .env prérempli avec les bonnes valeurs de configuration.Après avoir créé l’application, accédez à ses Settings dans le tableau de bord Auth0 et mettez à jour les Allowed Callback URLs et les Allowed Logout URLs en remplaçant YOUR_PACKAGE_ID par l’ID de package réel de votre application et YOUR_AUTH0_DOMAIN par votre domaine Auth0 :
Assurez-vous également que le type d’application est réglé sur Native et que la méthode d’authentification du point de terminaison de jeton est réglée sur None.
Assurez-vous que votre fichier .env existe : cat .env (Mac/Linux) ou type .env (Windows)
4

Configurer l’Auth0Provider

Ouvrez src/main.tsx et enveloppez le composant App dans Auth0Provider. Les paramètres propres aux appareils mobiles useRefreshTokens et useRefreshTokensFallback sont requis pour les applications Ionic sur iOS et Android.
src/main.tsx
  • useRefreshTokens : Obligatoire pour Ionic sur Android et iOS. Les navigateurs mobiles bloquent les témoins tiers; le SDK utilise donc des jetons d’actualisation au lieu d’une authentification silencieuse basée sur des iframes.
  • useRefreshTokensFallback : Doit être défini à false pour empêcher le SDK de tenter une authentification silencieuse basée sur des iframes, qui n’est pas offerte sur mobile.
  • authorizationParams.redirect_uri : Utilise l’identifiant de votre package comme schéma d’URL personnalisé afin que le système d’exploitation puisse rediriger le rappel Auth0 vers votre application.
Pour conserver l’authentification après la fermeture et la réouverture de l’application, il peut être utile de définir cacheLocation sur localstorage, mais sachez qu’il existe des risques à stocker des jetons dans localstorage. Avec Capacitor, localstorage doit être considéré comme transitoire — le système d’exploitation peut l’effacer sans préavis. Consultez les directives de Capacitor sur le stockage.Nous recommandons de ne pas utiliser le plugin Preferences de Capacitor pour stocker des jetons, car il s’appuie sur UserDefaults (iOS) et SharedPreferences (Android), qui ne sont pas chiffrés et pourraient être synchronisés dans le nuage. Le SDK prend en charge des implémentations de cache personnalisées si vous avez besoin d’un mécanisme de stockage plus sécuritaire et persistant.
5

Créer les gestionnaires de connexion, de déconnexion, de profil et de rappel

Créer des fichiers
Et ajoutez les extraits de code suivantsLe rappel openUrl dans LoginButton et LogoutButton utilise le plugiciel Browser de Capacitor pour ouvrir les pages de connexion et de déconnexion d’Auth0 dans le navigateur système de l’appareil, plutôt que de quitter complètement l’application.Le composant App écoute l’événement appUrlOpen, qui se déclenche lorsqu’Auth0 redirige vers votre application via le schéma d’URL personnalisé. Il appelle handleRedirectCallback pour échanger le code d’autorisation contre des jetons, puis ferme le navigateur.
Par défaut, la méthode loginWithRedirect du SDK utilise window.location.href pour rediriger vers la page de connexion, ce qui ouvre le navigateur par défaut de l’appareil. En configurant openUrl pour utiliser Browser.open, le processus d’authentification reste dans le contexte de votre application, ce qui améliore l’expérience utilisateur.
6

Exécutez votre application

Testez d’abord dans le navigateur
Lors de l’exécution dans le navigateur avec ionic serve, la redirection du schéma d’URL personnalisé (io.ionic.starter://...) ne fonctionnera pas, car les navigateurs ne prennent pas en charge les schémas d’URL personnalisés. Pour faire des tests dans le navigateur, remplacez temporairement redirect_uri par http://localhost:8100 dans src/main.tsx et ajoutez http://localhost:8100 aux Allowed Callback URLs et aux Allowed Logout URLs de votre application Auth0 dans le tableau de bord. N’oubliez pas de rétablir ce changement avant de créer la version native.
Pour l’exécuter sur un appareil ou un simulateur, ajoutez d’abord les plateformes natives :
Ensuite, compilez, synchronisez et exécutez :
Vous devez ajouter les plateformes natives avec npx cap add avant de pouvoir exécuter l’application dessus. Cette opération n’est requise qu’une seule fois par plateforme. Ensuite, npx cap sync copie vos ressources Web compilées et met à jour les plugins natifs.
Point de contrôleVous devriez maintenant disposer d’une connexion Auth0 entièrement fonctionnelle dans votre application Ionic. Sur un appareil, appuyer sur « Log in » ouvre la page de connexion universelle d’Auth0 dans le navigateur système et, après l’authentification, vous êtes redirigé vers votre application, où le profil de l’utilisateur s’affiche.

Utilisation avancée

Pour que les URI de rappel d’Auth0 fonctionnent sur les appareils, enregistrez l’identifiant de votre package comme schéma d’URL personnalisé sur chaque plateforme.iOS — ajoutez ceci à ios/App/App/Info.plist :
ios/App/App/Info.plist
Android — ajoutez un intent-filter dans l’élément <activity> principal de android/app/src/main/AndroidManifest.xml :
android/app/src/main/AndroidManifest.xml
Remplacez io.ionic.starter par la valeur réelle de appId dans capacitor.config.ts.
Pour en savoir plus, consultez Defining a Custom URL Scheme pour iOS, ou Create Deep Links to App Content pour Android.
Utilisez l’état d’authentification d’Auth0 pour protéger certaines routes dans votre application Ionic :
src/App.tsx
Le HOC withAuthenticationRequired redirige automatiquement les utilisateurs non authentifiés vers la page de connexion d’Auth0 lorsqu’ils tentent d’accéder à une route protégée.
Configurez votre Auth0Provider de façon à inclure une audience d’API, puis utilisez la méthode getAccessTokenSilently pour obtenir des jetons d’accès pour votre backend :
src/main.tsx
Ensuite, effectuez des appels authentifiés à l’API à partir de vos composants :
src/ApiCall.tsx