Auth0ComponentProvider est la couche d’orchestration de Auth0 Universal Components. Les SDK Auth0 gèrent les sessions et les jetons, et Auth0ComponentProvider convertit cet état d’authentification en un contexte d’interface utilisateur fonctionnel et aux couleurs de votre marque. Auth0ComponentProvider veille à ce que les composants, comme ceux de l’inscription à l’authentification multifacteur (MFA), disposent des autorisations, des données mises en cache et du style nécessaires.
Avantages
Auth0ComponentProvider est le conteneur racine requis pour tous les Auth0 Universal Components. Voici les avantages de son utilisation :
- Alignement de l’identité : Fait le lien entre les SDK Auth0 et l’API My Account afin de garantir que les requêtes sont signées avec des jetons associés à l’utilisateur.
- Optimisation des performances : Met en œuvre un cache TanStack Query partagé, spécialement optimisé pour les flux d’identité, afin d’éviter les appels d’API redondants et les changements de mise en page.
- Cohérence du système de conception : Propage les variables Tailwind CSS et les thèmes compatibles avec Shadcn dans toute 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 permet d’accéder à l’état de l’authentification et aux méthodes d’obtention de jetons requises pour appeler les API d’Auth0.
Configurer Auth0ComponentProvider
- React
- Next.js
- shadcn
App.tsx
Propriétés
| Propriété | Type | Obligatoire | Description |
|---|---|---|---|
domain | string | Oui | Domaine du locataire Auth0 (“YOUR_AUTH0_TENANT.auth0.com”). |
previewMode | boolean | Non | Lorsque true, ignore l’initialisation du client d’API. Utilisé pour les prévisualisations de la documentation et les démonstrations. |
i18n | I18nOptions | Non | Paramètres d’internationalisation, y compris currentLanguage et fallbackLanguage. |
themeSettings | ThemeSettings | Non | Configuration du thème, y compris le mode (light/dark), la variante du 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 toast personnalisées. |
cacheConfig | QueryCacheConfig | Non | Contrôle la mise en cache de TanStack Query (durée stale de deux min / GC de cinq min par défaut). Définissez enabled: false pour forcer l’actualisation des données. |
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 les composants universels 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 courante (p. ex., “en”, “es”, “fr”) |
fallbackLanguage | string | Non | ”en” | Code de la langue de remplacement lorsque des traductions sont manquantes |
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 offrant différents styles |
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
- de
--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-*(état normal, survol, focus)--shadow-button-destructive-*--shadow-button-outlined-*--shadow-input-*(état normal, survol, focus)--shadow-input-destructive-*--shadow-checkbox-*(état normal, survol)--shadow-switch-*(état normal, survol, focus, curseur, curseur foncé)
Pour des exemples détaillés de styles et de méthodes de personnalisation, consultez Personnaliser
le style et les thèmes avec Universal
Components.
toastSettingsLes paramètres de toast prennent en charge deux types de fournisseurs : Sonner (par défaut) ou personnalisé. Chaque fournisseur possède sa propre structure de configuration pour une meilleure sûreté des types.
- Provider Sonner (par défaut)
- Provider personnalisé
Exemple de provider Sonner
État et performance
Affinez la mise en cache de TanStack Query pour chaque composant Auth0. Par défaut, les données restent fraîches pendant deux minutes, sont collectées par le ramasse-miettes après cinq minutes, et les rechargements au focus de fenêtre sont ignorés.| Propriété | Type | Valeur par défaut | Description |
|---|---|---|---|
enabled | boolean | true | Active ou désactive entièrement la mise en cache. Lorsque cette option est définie sur false, les données périmées ne sont plus utilisées
et les entrées mises en cache sont rapidement supprimées. |
staleTime | number | 120000 | Nombre de millisecondes avant que les données deviennent périmées. La valeur par défaut est de deux minutes. Augmentez cette valeur pour les tableaux de bord et réduisez-la pour les flux de travail critiques. |
gcTime | number | 300000 | Nombre de millisecondes avant que les requêtes inactives soient supprimées par le ramasse-miettes. La valeur par défaut est de cinq minutes. |
refetchOnWindowFocus | boolean | “always” | false | Détermine si les requêtes sont récupérées de nouveau lorsque la fenêtre du navigateur retrouve le focus. Utilisez
“always” pour garantir une fraîcheur maximale. |
Désactiver la mise en cache : transmettez
{ enabled: false }. Cela définit automatiquement staleTime à 0 et réduit la fenêtre de garbage collection à cinq secondes, de sorte que chaque rendu récupère les données les plus récentes.Conseil de pro : laissez la mise en cache activée, mais réduisez staleTime lors de l’intégration à des interfaces d’administration qui nécessitent des mises à jour quasi en temps réel.- Régler le TTL
- Désactiver le cache