Utiliser l’IA pour intégrer Auth0
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
1
Créer un nouveau projet
Créer un nouveau projet Ionic Angular avec CapacitorOuvrir le projet
2
Installez le SDK Auth0 Angular et les plugins Capacitor
Installez Auth0 Angular SDK ainsi que les plugins Browser et App de Capacitor :
@capacitor/browser- ouvre la page de connexion Auth0 dans le navigateur système de l’appareil (SFSafariViewController sur iOS, Chrome Custom Tabs sur Android)@capacitor/app- gère les URL de rappel par lien profond d’Auth0 après l’authentification
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 :
- Configuration rapide (recommandée)
- CLI
- 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 :La configuration
src/main.ts
provideAuth0 comprend :useRefreshTokens: true— requis 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: false— requis 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.
5
Créer des composants Login, Logout et Profil
Créer les fichiers de composantsAjoutez 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 :
- Composant de l’application
- Page d’accueil
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 :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
Utiliser l’approche NgModule traditionnelle
Utiliser l’approche NgModule traditionnelle
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.Configuration d’un schéma d’URL personnalisé
Configuration d’un schéma d’URL personnalisé
Pour tester l’authentification sur un appareil réel, enregistrez votre schéma d’URL personnalisé pour chaque plateforme.Remplacez Remplacez Ou, pour Android :
iOS
Enregistrez votre schéma d’URL personnalisé dansios/App/App/Info.plist :YOUR_PACKAGE_ID par votre appId dans capacitor.config.ts. Pour en savoir plus, consultez Defining a Custom URL Scheme.Android
Ajoutez unintent-filter à android/app/src/main/AndroidManifest.xml, à l’intérieur de la balise <activity> :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
Protéger les routes avec AuthGuard
Protéger les routes avec AuthGuard
Utilisez le garde fonctionnel pour protéger les routes qui nécessitent une authentification :Lorsque des utilisateurs non authentifiés tentent d’accéder à une route protégée,
src/app/app.routes.ts
authGuardFn les redirige automatiquement vers la page de connexion Auth0.Appeler des API protégées
Appeler des API protégées
Configurez l’intercepteur HTTP pour ajouter automatiquement des jetons d’accès aux appels d’API :Ensuite, effectuez des appels d’API à l’aide du
src/main.ts
HttpClient d’Angular : l’intercepteur ajoute automatiquement le jeton Bearer.src/app/api.service.ts
Problèmes courants et solutions
Problèmes courants et solutions
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 queYOUR_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énementappUrlOpen 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 :- Allez dans Auth0 Dashboard > Applications > Votre application
- Remplacez le Type d’application par Native
- Définissez Méthode d’authentification du point de terminaison du jeton sur
None - Enregistrez les modifications et réessayez
SSO ne fonctionne pas sur iOS
Le plugin Browser de Capacitor utiliseSFSafariViewController, 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
ActivezcacheLocation: '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 deAuthService 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
- Exemple d’application — Une application Ionic Angular complète avec intégration Auth0
- Documentation de l’Auth0 Angular SDK — Référence complète du SDK et exemples
- Auth0 Dashboard — Configurez et gérez votre tenant Auth0 ainsi que vos applications
- Auth0 Marketplace — Découvrez les intégrations que vous pouvez activer pour étendre les fonctionnalités d’Auth0