Auth0
Détecter l'intention → détecter le framework → détecter l'outillage → charger 2–3 fichiers de référence.
Étape 1 : Détecter l'intention
Confrontez la demande du développeur à la colonne Ce que le développeur veut —
elle décrit l'objectif en langage courant, pas seulement le terme Auth0. Un développeur
qui n'a jamais entendu parler de « MFA » mais dit « faire en sorte que les utilisateurs
confirment avec un code de leur téléphone » atterrit quand même sur feature:mfa.
La valeur Intent que vous choisissez ici est une clé de recherche : à l'Étape 4 : Charger les fichiers de référence,
elle apparaît textuellement en tant qu'en-tête de section (### feature:mfa) qui liste
quels fichiers de référence charger.
| Ce que le développeur veut (langage courant + terme Auth0) | Intent |
|---|---|
| Ajouter une connexion, une inscription, un « laisser les utilisateurs se connecter / créer des comptes » à une application | integrate |
| Exiger une deuxième étape après le mot de passe — un code à usage unique, un code SMS ou email, une application d'authentification, une passkey, une empreinte digitale/reconnaissance faciale (biométrie), une clé de sécurité ; ou re-confirmer l'identité avant une action sensible. Auth0 : authentification multifacteur (MFA), authentification à deux facteurs (2FA), vérification en deux étapes, authentification progressive. | feature:mfa |
| Laisser des entreprises, équipes, espaces de travail ou locataires distincts avoir chacun leurs propres utilisateurs, membres, rôles et connexion — généralement un produit vendu aux entreprises. Auth0 : Organizations, multi-org, B2B SaaS. | feature:organizations |
Servir la page de connexion à partir de votre propre adresse web (p. ex. login.example.com, auth.company.com) au lieu de l'URL Auth0 par défaut. Auth0 : custom domain. |
feature:custom-domains |
| Construire des écrans de connexion/inscription entièrement personnalisés avec votre propre code ou framework, au-delà de ce que les paramètres de thème permettent. Auth0 : Advanced Customization for Universal Login (ACUL). | feature:acul |
| Changer l'apparence de la page de connexion — logo, couleurs, polices, arrière-plan, thème global. Auth0 : branding, Universal Login customization. | feature:branding |
| Lier les tokens au client pour qu'un token volé ou divulgué ne puisse pas être réutilisé/rejoué depuis une autre machine. Auth0 : DPoP (Demonstrating Proof-of-Possession), sender-constrained tokens. | feature:dpop |
| Demander des bonnes pratiques, « est-ce sécurisé ? », comment gérer les tokens en toute sécurité, « comment dois-je faire X ». Auth0 : guidance / security. | guidance |
| Rencontrer une erreur : 401 Unauthorized, 403 Forbidden, CORS, callback URL mismatch, redirect loop. Auth0 : debugging. | debug |
| Atteindre le rate limiting : 429 Too Many Requests, quota exceeded. Auth0 : rate limits. | debug:rate-limit |
| Migrer une application existante depuis Clerk, NextAuth.js, Firebase, Cognito, Okta, Supabase, Passport.js, ou un autre fournisseur d'authentification. Auth0 : provider migration. | migrate |
| Mettre à niveau le SDK Auth0 lui-même vers une nouvelle version majeure (p. ex. Auth0.swift v2→v3, Auth0.Android v3→v4) — breaking changes, APIs dépréciées, « mettre à jour vers le SDK le plus récent ». Auth0 : SDK major-version upgrade. | upgrade-sdk |
Utiliser directement la CLI Auth0 — « créer une application/API avec la CLI auth0 », scripter la configuration du tenant, ou automatiser la configuration Auth0 en CI — sans framework d'application. Auth0 : CLI / tooling-only. |
tooling |
Étape 2 : Détecter le framework
Ignorez cette étape pour l'intent
tooling. Une demande CLI-first / tooling-only n'a pas de framework d'application — allez directement à l'Étape 3, puis chargez la référence tooling. Posez une question sur le framework seulement si le développeur pivote ensuite vers l'intégration d'auth dans une application.
Travaillez de haut en bas. Arrêtez au premier tier qui produit un framework.
Tier 1 — SDK Auth0 déjà installé (signal le plus fort)
Lisez les fichiers du projet. Arrêtez à la première correspondance.
Node.js / JavaScript / TypeScript — vérifiez package.json → dependencies
Les lignes sont ordonnées du plus spécifique au moins spécifique — un projet Ionic/Capacitor porte aussi
@auth0/auth0-angular (etc.), donc les lignes @capacitor/browser doivent être vérifiées
avant les lignes de framework basiques.
| Package | Framework |
|---|---|
@capacitor/browser + @auth0/auth0-angular |
ionic-angular |
@capacitor/browser + @auth0/auth0-react |
ionic-react |
@capacitor/browser + @auth0/auth0-vue |
ionic-vue |
@auth0/nextjs-auth0 |
nextjs |
@auth0/auth0-nuxt |
nuxt |
@auth0/auth0-react |
react |
@auth0/auth0-vue |
vue |
@auth0/auth0-angular |
angular |
@auth0/auth0-spa-js |
spa-js |
express-openid-connect |
express |
@auth0/auth0-fastify |
fastify |
@auth0/auth0-fastify-api |
fastify-api |
express-oauth2-jwt-bearer |
express-jwt |
react-native-auth0 + app.json ou app.config.js présent |
expo |
react-native-auth0 (pas de fichiers Expo) |
react-native |
Python — vérifiez requirements.txt ou pyproject.toml
| Package | Framework |
|---|---|
auth0-server-python |
flask |
auth0-fastapi-api |
fastapi-api |
Java / Kotlin — vérifiez build.gradle ou pom.xml
| Dépendance | Framework |
|---|---|
mvc-auth-commons (com.auth0:mvc-auth-commons) |
java-mvc |
spring-security-oauth2-resource-server |
springboot-api |
.NET — vérifiez *.csproj ou NuGet.Config
| Package | Framework |
|---|---|
Auth0.AspNetCore.Authentication (sans suffixe .Api) |
aspnetcore-auth |
Auth0.AspNetCore.Authentication.Api |
aspnetcore-api |
Auth0.OidcClient.MAUI |
maui |
Auth0.OidcClient.AndroidX |
net-android |
Auth0.OidcClient.iOS |
net-ios |
Auth0.OidcClient.WinForms |
winforms |
Auth0.OidcClient.WPF |
wpf |
PHP — vérifiez composer.json
Le SDK auth0/auth0-php alimente à la fois les applications web PHP et les API PHP ; le mode est
défini en code via SdkConfiguration. Vérifiez ce signal — la ligne STRATEGY_API est plus spécifique, vérifiez-la d'abord.
| Package | Framework |
|---|---|
auth0/auth0-php + SdkConfiguration::STRATEGY_API (ou strategy: 'api') |
php-api |
auth0/auth0-php (pas de STRATEGY_API / STRATEGY_REGULAR ou strategy: 'webapp') |
php |
auth0/login (laravel, pas de AuthorizationGuard) |
laravel |
auth0/login + AuthorizationGuard |
laravel-api |
Si
auth0/auth0-phpest installé mais qu'aucune stratégieSdkConfigurationn'est définie encore (projet nouveau), passez à la désambiguation variante ci-dessous (intent : construction/protection d'une API →php-api, sinonphp).
Go — vérifiez go.mod
| Module | Framework |
|---|---|
github.com/auth0/go-jwt-middleware |
go |
Mobile (natif)
| Signal | Framework |
|---|---|
Package.swift ou .xcodeproj + Auth0.swift |
swift |
build.gradle + com.auth0.android:auth0 |
android |
pubspec.yaml + auth0_flutter + flutter.web: false |
flutter-native |
pubspec.yaml + auth0_flutter + web activé |
flutter-web |
Tier 2 — Framework à partir des dépendances non-Auth0 du workspace
Si aucun SDK Auth0 ne correspond, détectez le framework à partir des dépendances ordinaires (non-Auth0). Arrêtez à la première correspondance. Pour les frameworks avec une séparation web vs API, le framework de base est choisi ici ; la variante est résolue dans « Désambiguation de variante » ci-dessous.
Les lignes sont ordonnées du plus spécifique au moins spécifique — un projet Ionic porte aussi
@angular/core / vue / react, donc les lignes @ionic/* doivent être vérifiées avant
les lignes de framework basiques (même raisonnement que Tier 1).
| Signal | Framework de base |
|---|---|
next dans package.json |
nextjs |
nuxt dans package.json |
nuxt |
@ionic/* + @angular/core |
ionic-angular |
@ionic/* + react |
ionic-react |
@ionic/* + vue |
ionic-vue |
@angular/core dans package.json |
angular |
vue dans package.json (pas de nuxt) |
vue |
expo dans package.json |
expo |
react-native (pas d'expo) |
react-native |
react (pas de meta-framework ci-dessus) |
react (SPA) — voir remarque |
express dans package.json |
express (variante ci-dessous) |
fastify dans package.json |
fastify (variante ci-dessous) |
flask dans requirements.txt/pyproject.toml |
flask |
fastapi dans requirements.txt/pyproject.toml |
fastapi-api |
spring-boot dans pom.xml/build.gradle |
springboot-api |
laravel/framework dans composer.json |
laravel (variante ci-dessous) |
composer.json présent (pas de Laravel) |
php (variante ci-dessous) |
go.mod présent + serveur/routeur HTTP |
go |
Package.swift ou .xcodeproj |
swift |
pubspec.yaml (Flutter, web désactivé) |
flutter-native |
pubspec.yaml (Flutter, web activé) |
flutter-web |
*.csproj référençant MAUI |
maui |
*.csproj (WinForms) |
winforms |
*.csproj (WPF) |
wpf |
*.csproj ASP.NET (application web ou API) |
aspnetcore (variante ci-dessous) |
Remarque
react: un projet React basique correspond àreactpour une SPA utilisant le SDK React, ouspa-jssi l'application est vanilla JS framework-agnostique. Si c'est flou, posez une question avant de charger.
Tier 3 — Framework à partir du prompt
Si aucun signal du workspace ne correspondait, lisez la demande du développeur pour un nom de framework ou de langage et mappez-le ici. Arrêtez à la première correspondance.
| Le développeur mentionne... | Framework |
|---|---|
Next.js / next |
nextjs |
| Nuxt | nuxt |
| Angular (pas Ionic) | angular |
| Vue (pas Nuxt/Ionic) | vue |
| React SPA (pas Next.js) | react |
| vanilla JS / plain JS / SPA sans framework | spa-js |
| Express (application web / serveur-rendu) | express |
| Express API / protéger les routes API | express-jwt |
| Fastify (web) / Fastify API | fastify / fastify-api |
| Flask | flask |
| FastAPI | fastapi-api |
| Spring Boot | springboot-api |
| Java MVC / servlet | java-mvc |
| ASP.NET Core application web / API | aspnetcore-auth / aspnetcore-api |
| MAUI / WinForms / WPF | maui / winforms / wpf |
| PHP application web / PHP API | php / php-api |
| Laravel application web / Laravel API | laravel / laravel-api |
| Go / Golang API | go |
| Swift / iOS | swift |
| Android / Kotlin | android |
| Flutter (natif / web) | flutter-native / flutter-web |
| React Native / Expo | react-native / expo |
| Ionic (Angular/React/Vue) | ionic-angular / ionic-react / ionic-vue |
Désambiguation de variante (application web vs API)
Certains frameworks ont des références d'application web et API séparées. Quand le Tier 1 n'a pas défini la variante, choisissez intent-first :
| Base | Variante application web | Variante API | Choisir API quand… |
|---|---|---|---|
| express | express |
express-jwt |
protection des routes API / validation JWT, pas d'UI serveur-rendu |
| fastify | fastify |
fastify-api |
ressource server / validation JWT uniquement |
| php | php |
php-api |
construction/protection d'une PHP API, pas d'UI web |
| laravel | laravel |
laravel-api |
API-only (token guard), pas d'UI Blade |
| aspnetcore | aspnetcore-auth |
aspnetcore-api |
Web API / JWT bearer, pas d'UI de connexion par cookie |
Si l'intent est toujours ambigu (à la fois une UI et des endpoints protégés, ou flou), indiquez ce que vous avez détecté et posez une question au développeur sur application web vs API avant de charger.
Si rien ne correspond
Demandez au développeur quel framework/langage il utilise. Ne devinez pas.
Conflits
Si le Tier 2 (workspace) et le Tier 3 (prompt) sont en désaccord matériel (p. ex. le prompt
dit « Next.js » mais package.json n'a pas de next), indiquez le conflit et posez une question
plutôt que de choisir silencieusement. Les signaux du workspace priment le prompt quand les deux
sont présents et cohérents.
Étape 3 : Détecter l'outillage
Lisez l'arborescence des fichiers du projet. Ceci est une décision de contexte de projet, pas une préférence produit.
| Le projet a... | Charger |
|---|---|
Répertoire terraform/ OU tous les fichiers *.tf |
tooling-terraform.md |
| Serveur MCP Auth0 actif dans cette session d'agent | tooling-mcp.md |
| Tout le reste (par défaut) | tooling-cli.md |
Étape 4 : Charger les fichiers de référence
Trouvez la section ci-dessous dont l'en-tête correspond à l'Intent que vous avez choisi à l'Étape 1, puis lisez les fichiers de référence qu'elle liste.
integrate
Lire : references/framework-{framework}.md
Lire : references/tooling-{tooling}.md
Suivez le workflow d'intégration dans framework-{framework}.md.
Utilisez tooling-{tooling}.md pour toutes les étapes de configuration du tenant Auth0.
feature:mfa
Lire : references/feature-mfa.md
Lire : references/tooling-{tooling}.md
Si framework détecté : Lire references/framework-{framework}.md (pour le step-up trigger côté SDK)
feature:organizations
Lire : references/feature-organizations.md
Lire : references/tooling-{tooling}.md
Si framework détecté : Lire references/framework-{framework}.md
Si architecture multi-tenant / question de design B2B SaaS : aussi Lire references/pattern-multi-tenant.md
feature:custom-domains
Lire : references/feature-custom-domains.md
Lire : references/tooling-{tooling}.md
feature:acul
Lire : references/feature-acul.md
Lire : references/tooling-{tooling}.md
feature:branding
Lire : references/feature-branding.md
Lire : references/tooling-{tooling}.md
feature:dpop
Lire : references/feature-dpop.md
Lire : references/tooling-{tooling}.md
Si un framework SPA est détecté (vue/react/angular/spa-js) : Lire references/framework-{framework}.md
DPoP est SPA-only (pas de SSR : Next.js/Nuxt) — feature-dpop.md énonce l'exclusion.
guidance
Lire : references/pattern-security.md
Si framework détecté : Lire references/framework-{framework}.md (pour les conseils spécifiques au SDK — stockage des tokens, gestion de session, protection des routes)
Si gestion des tokens / JWT vs opaque / stockage : Lire references/pattern-token-handling.md
Si architecture multi-tenant / B2B : Lire references/pattern-multi-tenant.md + references/feature-organizations.md
debug
Lire : references/pattern-common-errors.md
Si framework détecté : Lire references/framework-{framework}.md
debug:rate-limit
Lire : references/pattern-rate-limiting.md
migrate
Lire : references/feature-migration.md
Lire : references/tooling-{tooling}.md
Si framework détecté : Lire references/framework-{framework}.md
upgrade-sdk
Lire : references/framework-{framework}.md
Suivez sa section « Major Version Migration » (p. ex. Auth0.swift v3, Auth0.Android v4).
Ceci est une mise à niveau de version SDK Auth0 — PAS une migration de fournisseur. Ne chargez pas feature-migration.md.
Si aucun framework n'est détecté : demandez quel SDK Auth0 le développeur met à niveau.
tooling
Lire : references/tooling-{tooling}.md
Pas de fichier framework — ceci est une tâche CLI/tooling-only (créer des applications/APIs, scripter la configuration du tenant,
automatiser la configuration en CI). Si le développeur veut ensuite intégrer auth dans une application, revenez à l'Étape 1 avec l'intent integrate.