Utiliser l’IA pour intégrer Auth0
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 automatiquement l’authentification Auth0 en quelques minutes à l’aide des agent skills.Commencez par installer les agent skills Auth0 :Ensuite, demandez à votre assistant IA :Votre assistant IA créera automatiquement votre application Auth0, récupérera les identifiants, installera le SDK Angular d’Auth0 et les plugins Capacitor, configurera le deep linking et mettra en place les flux de connexion et de déconnexion avec l’intégration du navigateur natif. Pour en savoir plus, consultez les agent skills Auth0.
Pour commencer
Installez le SDK Angular d’Auth0 et les plugins Capacitor
Installez le SDK Angular d’Auth0 ainsi que les plugiciels Browser et App de Capacitor :
@capacitor/browser- ouvre la page de connexion d’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 de lien profond d’Auth0 après l’authentification
Sur iOS, le plugin Browser de Capacitor utilise
SFSafariViewController, qui, à partir d’iOS 11, ne partage pas les cookies avec Safari. Cela signifie que l’authentification unique (SSO) ne fonctionnera pas sur ces appareils. Si vous avez besoin du SSO, utilisez un plugin compatible qui s’appuie sur ASWebAuthenticationSession.Configurez votre application Auth0
Ensuite, créez une nouvelle application sur votre locataire Auth0 et ajoutez les variables d’environnement à votre projet.Vous avez trois options pour configurer votre application Auth0 : utiliser l’outil Quick Setup (recommandé), exécuter une commande CLI ou configurer manuellement via le Auth0 Dashboard :
- Configuration rapide (recommandée)
- CLI
- Auth0 Dashboard
Créez une application native Auth0 et copiez le fichier d’environnement prérempli avec les valeurs de configuration appropriées.Après avoir créé votre application, mettez à jour les Allowed Callback URLs et les Allowed Logout URLs dans l’onglet Settings de l’Auth0 Dashboard. Remplacez
YOUR_PACKAGE_ID par la valeur de appId dans votre fichier capacitor.config.ts (par défaut : io.ionic.starter) :Allowed Callback URLs et Allowed Logout URLs :Configurer le module Auth0
Une fois le 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 servent donc à renouveler les sessions.useRefreshTokensFallback: false— requis sur mobile. Empêche le SDK de revenir à l’authentification silencieuse basée sur des iframes, qui n’est pas offerte 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.
Créer des composants Login, Logout et Profile
Créer les fichiers de composantsAjoutez le code suivant à chaque composant :Mettez maintenant à jour le composant App pour gérer les rappels 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
La fonction de rappel de l’événement
appUrlOpen dans le composant App est enveloppée dans this.ngZone.run(). Cela est obligatoire, car les fonctions de rappel des plugiciels Capacitor s’exécutent en dehors de la zone d’Angular et, 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.Lancez votre application
Testez d’abord dans le navigateur :Pour exécuter l’application sur un appareil ou un simulateur, ajoutez d’abord les plateformes natives :Ensuite, générez, synchronisez et exécutez :
Vous devez ajouter les plateformes natives avec
npx cap add avant de pouvoir exécuter l’application sur celles-ci. Cette opération n’est requise qu’une seule fois par plateforme. Assurez-vous que votre schéma URL personnalisé est enregistré (voir Utilisation avancée ci-dessous).Point de contrôleVous devriez maintenant avoir une page de connexion Auth0 entièrement fonctionnelle sur votre localhost
Utilisation avancée
Utilisation de l’approche traditionnelle avec NgModule
Utilisation de l’approche traditionnelle avec NgModule
Si vous avez créé votre projet avec
--type=angular (au lieu de --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 modèles au lieu de la syntaxe de contrôle de flux @if. Les composants doivent être déclarés dans le module plutôt que définis 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 un filtre d’intention à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 un appareil
Protection des routes avec AuthGuard
Protection des routes avec AuthGuard
Utilisez le guard fonctionnel pour protéger les routes qui nécessitent une authentification :Lorsqu’un utilisateur non authentifié accède à une route protégée,
src/app/app.routes.ts
authGuardFn le redirige automatiquement vers la page de connexion Auth0.Appel d’API protégées
Appel d’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 de
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 de non-correspondance de l’URL de rappel
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 fichier 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(). Sinon, Angular ne détectera pas les changements d’état provenant de handleRedirectCallback. Consultez Using Angular with Capacitor.Erreur « PKCE not allowed »
Correctif :- Accédez à Auth0 Dashboard > Applications > Your Application
- Définissez Application Type sur Native
- Définissez Token Endpoint Authentication Method sur
None - Enregistrez les modifications et réessayez
Le SSO ne fonctionne pas sur iOS
Le plugin Browser de Capacitor utiliseSFSafariViewController, qui ne partage pas les témoins 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 conserver les jetons d’une session à l’autre après le redémarrage de l’application. Tenez compte des implications de sécurité et des limitations de stockage de Capacitor.L’observable ne s’exécute jamais
Toutes les méthodesAuthService 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 chaîné à la fin.Étapes suivantes
- Exemple d’application — Une application Ionic Angular complète avec intégration d’Auth0
- Documentation du SDK Angular d’Auth0 — Référence complète du SDK et exemples
- Auth0 Dashboard — Configurez et gérez votre locataire Auth0 et vos applications
- Auth0 Marketplace — Découvrez les intégrations que vous pouvez activer pour étendre les fonctionnalités d’Auth0