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 compétences d’agent.Installer :Ensuite, demandez à votre assistant IA :Votre assistant IA créera automatiquement votre application Auth0, récupérera les jetons, installera
react-native-auth0, configurera les dépendances natives et mettra en place votre flux d’authentification. Documentation complète sur les compétences d’agent →Pour commencer
Créer un nouveau projet React Native
Créez un nouveau projet React Native pour ce guide de démarrage.Dans votre terminal :Configurez votre projet avec :
- Nom :
Auth0ReactNativeSample - Nom du package :
com.auth0.samples.reactnative
Installer le SDK Auth0
Ajoutez le SDK Auth0 pour React Native à votre projet.Pour iOS, installez les dépendances natives :
Configurez votre application Auth0
Créez et configurez une application Auth0 pour qu’elle fonctionne avec votre appli React Native.URLs de déconnexion autorisées :Remplacez
- Accédez au tableau de bord Auth0
- Cliquez sur Applications > Applications > Create Application
- Dans la fenêtre contextuelle, saisissez un nom pour votre application (p. ex.,
Auth0 React Native Sample), sélectionnezNativecomme type d’application, puis cliquez sur Create - Ouvrez l’onglet Settings dans la page des détails de l’application
- Prenez en note les valeurs Domain et Client ID
{yourDomain} par votre domaine Auth0 réel (p. ex., dev-abc123.us.auth0.com).Les URL de rappel autorisées sont une mesure de sécurité essentielle pour s’assurer que les utilisateurs sont redirigés en toute sécurité vers votre application après l’authentification. Sans URL correspondante, le processus de connexion échouera et les utilisateurs verront une page d’erreur Auth0 au lieu d’accéder à votre application.Les URL de déconnexion autorisées sont essentielles pour offrir une expérience utilisateur fluide à la déconnexion. Sans URL correspondante, les utilisateurs ne seront pas redirigés vers votre application après la déconnexion et se retrouveront plutôt sur une page générique d’Auth0.Le schéma d’URL inclut
.auth0 après votre identifiant de bundle pour que l’URL de rappel soit redirigée vers votre application. Pour ce guide de démarrage rapide, l’identifiant de bundle est org.reactjs.native.example.auth0reactnativesample.Configurer les plateformes natives
Configurez iOS et Android pour prendre en charge le rappel d’authentification.Configuration Android :Ouvrez Remplacez Ouvrez
android/app/build.gradle et ajoutez les espaces réservés du manifeste dans defaultConfig :android/app/build.gradle
{yourDomain} par votre domaine Auth0 (p. ex. dev-abc123.us.auth0.com).Configuration d’iOS :- AppDelegate.mm (Objective-C)
- AppDelegate.swift (Swift)
Ouvrez
ios/Auth0ReactNativeSample/AppDelegate.mm et ajoutez la méthode de gestion des URL :ios/Auth0ReactNativeSample/AppDelegate.mm
ios/Auth0ReactNativeSample/Info.plist et ajoutez le schéma d’URL. Ajoutez ceci avant la balise de fermeture </dict> :ios/Auth0ReactNativeSample/Info.plist
Le schéma d’URL utilise l’identifiant de votre bundle, suivi de
.auth0. Cela garantit que l’URL de rappel est acheminée vers votre application une fois l’authentification terminée dans le navigateur.Configurer le composant App
Configurez le composant principal de votre application selon l’approche d’implémentation choisie.
- Basée sur les hooks (avec Provider)
- Basée sur les classes (sans Provider)
Remplacez le contenu de Remplacez
App.tsx et enveloppez votre application dans le composant Auth0Provider :App.tsx
{yourDomain} par votre domaine Auth0 et {yourClientId} par votre ID client dans le tableau de bord Auth0.Mettre en place la connexion et la déconnexion
Créez un composant d’écran qui gère la connexion et la déconnexion. Vous pouvez choisir entre une approche par hooks (recommandée) ou une approche par classes.
- Basé sur des hooks (recommandé)
- Basé sur des classes
Créez
src/MainScreen.tsx à l’aide du hook useAuth0 :src/MainScreen.tsx
La méthode
authorize() (hooks) ou auth0.webAuth.authorize() (classe) ouvre l’interface Universal Login d’Auth0 dans un navigateur sécurisé (ASWebAuthenticationSession sur iOS, Chrome Custom Tabs sur Android). La méthode clearSession() déconnecte l’utilisateur et efface à la fois la session du navigateur et les identifiants enregistrés.Exécutez votre application
Compilez et exécutez votre application React Native sur un appareil ou dans un émulateur.Pour iOS (macOS requis) :Pour Android :Déroulement attendu :
- L’app se lance et affiche le bouton “Se connecter”
- Touchez Se connecter → Le navigateur s’ouvre sur Auth0 Universal Login
- Terminez la connexion (création de compte ou ouverture de session)
- Le navigateur se ferme → Retour automatique à l’app
- Le profil de l’utilisateur s’affiche avec le nom, l’adresse courriel et l’avatar
VérificationVous devriez maintenant disposer d’une expérience de connexion Auth0 entièrement fonctionnelle sur votre appareil ou votre émulateur. L’application utilise l’authentification sécurisée par navigateur et gère automatiquement les jetons.
Dépannage et options avancées
Problèmes courants et solutions
Problèmes courants et solutions
Erreur « Callback URL mismatch »
Solution :- Vérifiez que l’URL exacte (y compris le suffixe
.auth0) figure dans Allowed Callback URLs de votre tableau de bord Auth0 - Assurez-vous que les URL iOS et Android ont toutes les deux été ajoutées
- Vérifiez que
{yourDomain}est remplacé par votre véritable domaine Auth0
L’application ne revient pas après la connexion (iOS)
Correctif :- Vérifiez que
Info.plistcontient l’entréeCFBundleURLSchemesavec$(PRODUCT_BUNDLE_IDENTIFIER).auth0 - Vérifiez que
AppDelegate.mmcomprend la méthode de gestion des URL - Assurez-vous que le schéma d’URL correspond à votre identifiant de bundle
La compilation Android échoue
Correctif :- Ajoutez les espaces réservés de manifeste
auth0Domainetauth0Schemeàbuild.gradle - Synchronisez le projet avec les fichiers Gradle
- Nettoyez la compilation :
./gradlew clean
Erreur « PKCE not allowed »
Correctif :- Allez dans Auth0 Dashboard → Applications → Your Application
- Changez le type d’application pour Native
- Enregistrez les modifications et réessayez
L’installation des pods échoue (iOS)
Correctif :- Mettez à jour CocoaPods :
sudo gem install cocoapods - Mettez à jour le dépôt de pods :
pod install --repo-update - Si le problème persiste, supprimez
Podfile.locket le dossierios/Pods, puis exécutezpod installà nouveau
Erreur d’annulation par l’utilisateur
Gérez-la correctement dans votre fonction de connexion :Boîte de dialogue d’alerte iOS
Sur iOS, les utilisateurs voient une boîte de dialogue d’autorisation : “App Name” Wants to Use “auth0.com” to Sign In. Il s’agit du comportement attendu deASWebAuthenticationSession. Les utilisateurs doivent appuyer sur Continue pour poursuivre.Pour personnaliser ce comportement, vous pouvez utiliser des sessions éphémères (ce qui désactive le SSO) :Récupération des jetons d’accès
Récupération des jetons d’accès
Utilisez la méthode
getCredentials() pour récupérer les jetons nécessaires aux appels d’API :Vérifier l’état de l’authentification au lancement de l’application
Vérifier l’état de l’authentification au lancement de l’application
Utilisez
hasValidCredentials() pour vérifier si l’utilisateur est déjà connecté :Déploiement en production
Déploiement en production
Avant le déploiement en production
Utilisez des URL de rappel HTTPS pour une sécurité accrue :- Paramètres → Paramètres avancés → Paramètres de l’appareil
- Ajoutez l’empreinte SHA-256 de votre application
- Ajoutez la capacité Associated Domains dans Xcode
- Ajoutez
webcredentials:{yourDomain}aux Associated Domains
localAuthenticationOptions dans Auth0ProviderVérifiez les paramètres de sécurité dans le tableau de bord Auth0 :- Activez OIDC Conformant dans les paramètres avancés
- Configurez l’expiration du jeton de façon appropriée
- Activez la protection contre les attaques par force brute
- Testez sur plusieurs appareils et versions du système d’exploitation
- Prévoyez une gestion adéquate des erreurs en cas d’échec du réseau