Skip to main content

Utiliser l’IA pour intégrer Auth0

Si vous utilisez un assistant IA de codage comme Claude Code, Cursor ou GitHub Copilot, vous pouvez ajouter l’authentification Auth0 automatiquement en quelques minutes à l’aide de agent skills.Commencez par installer les Auth0 agent skills :
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 Angular et les plugins Capacitor, configurera les liens profonds et mettra en place les flux de connexion et de déconnexion avec l’intégration du navigateur natif. Pour en savoir plus, consultez Auth0 agent skills.

Pour commencer

Ce Quickstart montre comment ajouter l’authentification Auth0 à une application Ionic Angular avec Capacitor. Vous créerez une application adaptée aux appareils mobiles avec des fonctionnalités de connexion, de déconnexion et de profil utilisateur à l’aide du SDK Auth0 Angular et des plugins de navigateur natifs de Capacitor.
1

Créer un nouveau projet

Créer un nouveau projet Ionic Angular avec Capacitor
Ouvrir le projet
Assurez-vous d’utiliser le package @ionic/cli (et non le package ionic, désormais obsolète). Si vous voyez des erreurs concernant --npm-client lors de la création du projet, mettez votre CLI à jour :
2

Installez le SDK Auth0 Angular et les plugins Capacitor

Installez Auth0 Angular SDK ainsi que les plugins Browser et App de Capacitor :
Le plugin Browser de Capacitor sur iOS utilise SFSafariViewController, qui, sur iOS 11+, ne partage pas les cookies avec Safari. Cela signifie que le SSO ne fonctionnera pas sur ces appareils. Si vous avez besoin du SSO, utilisez un plugin compatible qui utilise ASWebAuthenticationSession.
3

Configurez votre Auth0 App

Ensuite, vous devez créer une nouvelle application sur votre tenant Auth0 et ajouter les variables d’environnement à votre projet.Vous avez trois façons de configurer votre application Auth0 : utiliser l’outil Quick Setup (recommandé), exécuter une commande CLI, ou configurer manuellement via le Dashboard :
Créez une Auth0 App Native et copiez le fichier d’environnement prérempli avec les bonnes valeurs de configuration.Après avoir créé votre application, mettez à jour les Allowed Callback URLs et les Allowed Logout URLs dans l’onglet Settings du Auth0 Dashboard. Remplacez YOUR_PACKAGE_ID par le appId de votre capacitor.config.ts (par défaut : io.ionic.starter) :Allowed Callback URLs et Allowed Logout URLs :
4

Configurer le module Auth0

Une fois votre fichier d’environnement créé à l’étape précédente, configurez le module Auth0 dans votre application :
src/main.ts
La configuration provideAuth0 comprend :
  • useRefreshTokens: truerequis sur mobile. Les applications Capacitor ne peuvent pas utiliser l’authentification silencieuse basée sur des iframes; des jetons d’actualisation sont donc utilisés pour renouveler les sessions.
  • useRefreshTokensFallback: falserequis sur mobile. Empêche le SDK de recourir à une solution de secours avec l’authentification silencieuse basée sur des iframes, qui n’est pas prise en charge dans les applications natives.
  • authorizationParams.redirect_uri — utilise le schéma d’URL personnalisé de votre application pour y rediriger l’utilisateur après l’authentification.
Pour conserver l’authentification après avoir fermé puis rouvert l’application, vous pouvez définir cacheLocation sur localstorage, mais sachez qu’il existe des risques à stocker des jetons dans localstorage. De plus, localstorage doit être considéré comme transitoire dans les applications Capacitor. Veuillez consulter les recommandations sur le stockage dans la documentation de Capacitor.
5

Créer des composants Login, Logout et Profil

Créer les fichiers de composants
Ajoutez le code suivant à chaque composant :Mettez maintenant à jour le composant App pour gérer les callbacks Auth0, et la page d’accueil pour utiliser vos composants :
Remplacez le contenu de src/app/app.component.ts :
src/app/app.component.ts
Le callback de l’événement appUrlOpen dans le composant App est encapsulé dans this.ngZone.run(). C’est obligatoire, parce que les callbacks du plugin Capacitor s’exécutent à l’extérieur de la zone d’Angular et que, sans cela, Angular ne détectera pas les changements d’état d’authentification après la connexion. Consultez Using Angular with Capacitor pour en savoir plus.
6

Lancez votre application

Commencez par tester dans le navigateur :
Si vous exécutez l’application dans le navigateur avec ionic serve, la redirection au moyen d’un schéma d’URL personnalisé ne fonctionnera pas, car les navigateurs ne peuvent pas gérer ce type de schéma. Pour faire des tests dans le navigateur, remplacez temporairement redirect_uri par http://localhost:8100 dans src/main.ts et ajoutez http://localhost:8100 à Allowed Callback URLs et Allowed Logout URLs de votre application Auth0 dans le Dashboard. N’oubliez pas de rétablir cette modification avant de générer l’application pour le mode natif.
Pour exécuter l’application 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 les exécuter. Cette étape n’est nécessaire qu’une seule fois par plateforme. Assurez-vous d’avoir enregistré votre schéma d’URL personnalisé (voir Utilisation avancée ci-dessous).
VérificationVous devriez maintenant avoir une page de connexion Auth0 entièrement fonctionnelle sur votre localhost

Utilisation avancée

Si vous avez créé votre projet avec --type=angular (plutôt que --type=angular-standalone) ou si vous préférez utiliser des NgModules, configurez le SDK avec AuthModule.forRoot :
src/app/app.module.ts
Lorsque vous utilisez des NgModules, injectez AuthService dans le constructeur (constructor(public auth: AuthService)) plutôt qu’avec inject(). Utilisez *ngIf="auth.user$ | async as user" dans les gabarits au lieu de la syntaxe de contrôle de flux @if. Les composants doivent être déclarés dans le module plutôt qu’être marqués avec standalone: true.
Pour tester l’authentification sur un appareil réel, enregistrez votre schéma d’URL personnalisé pour chaque plateforme.

iOS

Enregistrez votre schéma d’URL personnalisé dans ios/App/App/Info.plist :
Remplacez YOUR_PACKAGE_ID par votre appId dans capacitor.config.ts. Pour en savoir plus, consultez Defining a Custom URL Scheme.

Android

Ajoutez un intent-filter à android/app/src/main/AndroidManifest.xml, à l’intérieur de la balise <activity> :
Remplacez YOUR_PACKAGE_ID par votre appId dans capacitor.config.ts. Pour en savoir plus, consultez Create Deep Links to App Content.

Compiler et exécuter sur l’appareil

Ou, pour Android :
Utilisez le garde fonctionnel pour protéger les routes qui nécessitent une authentification :
src/app/app.routes.ts
Lorsque des utilisateurs non authentifiés tentent d’accéder à une route protégée, authGuardFn les redirige automatiquement vers la page de connexion Auth0.
Configurez l’intercepteur HTTP pour ajouter automatiquement des jetons d’accès aux appels d’API :
src/main.ts
Ensuite, effectuez des appels d’API à l’aide du HttpClient d’Angular : l’intercepteur ajoute automatiquement le jeton Bearer.
src/app/api.service.ts
httpInterceptor.allowedList détermine quels points de terminaison d’API reçoivent des jetons d’accès. Incluez le paramètre audience pour demander un jeton d’accès pour votre API. Remplacez YOUR_API_IDENTIFIER par l’identifiant indiqué dans Auth0 Dashboard > APIs.

Erreur : l’URL de rappel ne correspond pas

Solution : Vérifiez que l’URL de rappel dans votre Auth0 Dashboard correspond exactement à l’URL construite dans votre application. Assurez-vous que YOUR_PACKAGE_ID correspond au champ appId dans votre capacitor.config.ts.

L’écran ne se met pas à jour après la connexion

Solution : Assurez-vous que la fonction de rappel de l’événement appUrlOpen est encapsulée dans this.ngZone.run(). Sans cela, Angular ne détectera pas les changements d’état provenant de handleRedirectCallback. Consultez Using Angular with Capacitor.

Erreur « PKCE not allowed »

Correctif :
  1. Allez dans Auth0 Dashboard > Applications > Votre application
  2. Remplacez le Type d’application par Native
  3. Définissez Méthode d’authentification du point de terminaison du jeton sur None
  4. Enregistrez les modifications et réessayez

SSO ne fonctionne pas sur iOS

Le plugin Browser de Capacitor utilise SFSafariViewController, qui ne partage pas les cookies avec Safari sur iOS 11+. Si vous avez besoin du SSO, utilisez un plugin compatible qui utilise ASWebAuthenticationSession.

La connexion fonctionne, mais l’utilisateur reste non authentifié après le redémarrage de l’application

Activez cacheLocation: 'localstorage' dans la configuration provideAuth0 pour enregistrer les jetons entre les redémarrages de l’application. Soyez conscient des implications sur la sécurité et des limitations du stockage de Capacitor.

L’observable ne s’exécute jamais

Toutes les méthodes de AuthService renvoient des observables froids. Vous devez appeler .subscribe() pour qu’elles s’exécutent. Si loginWithRedirect() ou logout() semble ne rien faire, vérifiez que .subscribe() est bien enchaîné à la fin.

Prochaines étapes

Consultez les ressources suivantes pour en savoir plus :