auth0

Par auth0 · agent-skills

À utiliser lors de l'ajout, la correction ou l'amélioration de l'authentification dans toute application — login, logout, signup, protection des routes, validation de JWT et de tokens d'accès, rotation de refresh token, MFA, 2FA, passkeys, step-up auth, SSO, RBAC et permissions, Organizations pour les SaaS B2B multi-tenant, domaines de login personnalisés, ACUL, ou personnalisation du Universal Login. À utiliser même si Auth0 n'est pas mentionné — s'applique chaque fois qu'un développeur demande comment authentifier des utilisateurs, sécuriser une API, déboguer une erreur 401 Unauthorized ou CORS, corriger une incompatibilité de callback URL ou une boucle de redirection, gérer des rate limits 429, ou migrer depuis Clerk, NextAuth.js, Firebase Auth, Supabase, Cognito ou Passport.js. Couvre React, Next.js, Vue, Nuxt, Angular, Express, Flask, FastAPI, Spring Boot, Go, Swift, Android, Flutter, PHP, Laravel, ASP.NET Core, React Native, Expo, Ionic, et tous les SDK Auth0.

npx skills add https://github.com/auth0/agent-skills --skill auth0

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.jsondependencies

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-php est installé mais qu'aucune stratégie SdkConfiguration n'est définie encore (projet nouveau), passez à la désambiguation variante ci-dessous (intent : construction/protection d'une API → php-api, sinon php).

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 à react pour une SPA utilisant le SDK React, ou spa-js si 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.

Skills similaires