Auth0ComponentProvider est la couche d’orchestration des Auth0 Universal Components. Les SDK Auth0 gèrent les sessions et les jetons, tandis que le Auth0ComponentProvider traduit cet état d’identité en un contexte d’interface utilisateur fonctionnel et adapté à l’image de marque. Le Auth0ComponentProvider veille à ce que les composants, comme l’inscription à l’AMF, disposent des permissions, des données mises en cache et du style nécessaires.
Avantages
Auth0ComponentProvider est l’enveloppe racine requise pour tous les Auth0 Universal Components. Voici les avantages de son utilisation :
- Alignement des identités : Fait le pont entre les Auth0 SDKs et la My Account API afin que les requêtes soient signées avec des jetons associés à l’utilisateur.
- Optimisation des performances : Implémente un cache TanStack Query partagé, spécialement optimisé pour les flux de travail liés à l’identité, afin d’éviter les appels d’API redondants et les décalages de mise en page.
- Cohérence du système de conception : Propage les variables Tailwind CSS et les thèmes compatibles avec Shadcn dans l’arborescence des composants.
- Rétroaction globale : Gère un système unifié de notifications toast pour les alertes de sécurité et l’état des flux de travail.
Architecture d’intégration
Auth0ComponentProvider dans votre fournisseur d’authentification (Auth0Provider). Cette configuration donne accès à l’état d’authentification et aux méthodes d’obtention de jetons nécessaires pour appeler les API Auth0.
Configurer Auth0ComponentProvider
- React
- Next.js
- shadcn
Recommandation de sécurité : Pour les applications de production qui gèrent la configuration des Organizations, Auth0 recommande la configuration Next.js (application Web classique). Le mode proxy de Next.js stocke les jetons côté serveur, ce qui réduit la surface d’attaque par rapport au stockage des jetons dans le navigateur d’une SPA. Si vous utilisez le mode React SPA, consultez les conseils sur le Stockage des jetons afin de comprendre les compromis.
App.tsx
Propriétés
| Propriété | Type | Obligatoire | Description |
|---|---|---|---|
domain | string | Oui | Domaine du tenant Auth0 (“YOUR_AUTH0_TENANT.auth0.com”). |
previewMode | boolean | Non | Lorsqu’il est défini sur true, l’initialisation du client API est ignorée. Utilisé pour les aperçus et les démos de la documentation. |
i18n | I18nOptions | Non | Paramètres d’internationalisation, notamment currentLanguage et fallbackLanguage. |
themeSettings | ThemeSettings | Non | Configuration du thème, y compris le mode (clair/sombre), la variante de thème (default/minimal/rounded) et les variables CSS. |
toastSettings | ToastSettings | Non | Configuration des notifications toast, y compris le choix du fournisseur (sonner/custom), le positionnement, la durée et les méthodes de notifications toast personnalisées. |
cacheConfig | QueryCacheConfig | Non | Contrôle la mise en cache de TanStack Query (données périmées après deux minutes / GC après cinq minutes par défaut). Définissez enabled: false pour forcer l’utilisation de données à jour. |
loader | React.ReactNode | Non | Composant de chargement personnalisé à afficher pendant l’initialisation de l’authentification. |
Expérience utilisateur
i18nUtilisez les propriétés suivantes pour adapter Universal Components au système de conception et aux paramètres régionaux de votre application.
| Propriété | Type | Obligatoire | Par défaut | Description |
|---|---|---|---|---|
currentLanguage | string | Oui | - | Code de la langue actuelle (par exemple, “en”, “es”, “fr”) |
fallbackLanguage | string | Non | ”en” | Code de la langue de secours lorsque des traductions sont absentes |
themeSettings
| Propriété | Type | Par défaut | Description |
|---|---|---|---|
mode | ”light” | “dark" | "light” | Mode de couleur du thème |
theme | ”default” | “minimal” | “rounded" | "default” | Variante de thème proposant différents styles visuels |
variables | StylingVariables | Propriétés CSS personnalisées pour les thèmes commun, clair et foncé |
Variables CSS offertes
Variables CSS offertes
Commun (s’applique à tous les thèmes) :Typographie :
--font-size-page-header--font-size-page-description--font-size-heading--font-size-title--font-size-subtitle--font-size-body--font-size-paragraph--font-size-label
--radius-xsà--radius-9xl
--background,--foreground--card,--card-foreground--primary,--primary-foreground--secondary,--secondary-foreground--accent,--accent-foreground--muted,--muted-foreground--destructive,--destructive-foreground--popover,--popover-foreground--input,--border,--ring--color-page--color-info,--color-info-foreground--color-success,--color-success-foreground--color-warning,--color-warning-foreground--color-destructive-border--color-popover-border--color-input-foreground--color-input-muted
--shadow-bevel-*(xs, sm, md, lg, xl, 2xl)--shadow-button-*(repos, survol, focus)--shadow-button-destructive-*--shadow-button-outlined-*--shadow-input-*(repos, survol, focus)--shadow-input-destructive-*--shadow-checkbox-*(repos, survol)--shadow-switch-*(repos, survol, focus, curseur, curseur foncé)
Pour des exemples détaillés de styles et de modèles de personnalisation, consultez Personnaliser
les styles et les thèmes avec les Universal
Components.
toastSettingsLes paramètres des notifications éphémères prennent en charge deux types de fournisseurs : Sonner (par défaut) ou personnalisé. Chaque fournisseur possède sa propre structure de configuration, ce qui améliore la sûreté du typage.
- Fournisseur Sonner (par défaut)
- Custom Provider
Sonner Provider Example
État et performances
Ajustez avec précision la mise en cache de TanStack Query pour chaque composant Auth0. Par défaut, les données demeurent fraîches pendant deux minutes, sont libérées par le ramasse-miettes après cinq minutes, et les rechargements déclenchés par le focus de la fenêtre sont ignorés.| Propriété | Type | Par défaut | Description |
|---|---|---|---|
enabled | boolean | true | Active ou désactive la mise en cache. Lorsque cette option est définie sur false, les données obsolètes sont
désactivées et les entrées du cache sont rapidement supprimées. |
staleTime | number | 120000 | Nombre de millisecondes avant que les données deviennent obsolètes. La valeur par défaut est de deux minutes. Augmentez cette valeur pour les tableaux de bord et diminuez-la pour les workflows critiques. |
gcTime | number | 300000 | Nombre de millisecondes avant que les requêtes inactives soient supprimées par le récupérateur de mémoire. La valeur par défaut est de cinq minutes. |
refetchOnWindowFocus | boolean | “always” | false | Indique si les requêtes sont relancées lorsque le navigateur reprend le focus. Utilisez
“always” pour garantir des données toujours à jour. |
Désactiver la mise en cache : Passez
{ enabled: false }. Cela règle automatiquement staleTime à 0 et réduit le délai de récupération de mémoire à cinq secondes, afin que chaque rendu récupère des données récentes.Conseil de pro : Gardez la mise en cache activée, mais réduisez staleTime lors de l’intégration à des panneaux d’administration nécessitant des mises à jour quasi instantanées.- Configurer le TTL
- Désactiver le cache