Passer au contenu principal
Auth0 Universal Components est actuellement en accès anticipé. En l’utilisant, vous acceptez les conditions applicables de l’essai gratuit énoncées dans le Contrat-cadre d’abonnement d’Okta. Pour en savoir plus, consultez Phases de lancement des produits.
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

Imbriquez 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

App.tsx
import { Auth0Provider } from "@auth0/auth0-react";
import { Auth0ComponentProvider } from "@auth0/universal-components-react/spa";

function App() {
  return (
    <Auth0Provider
      domain="your-tenant.auth0.com"
      clientId="YOUR_CLIENT_ID"
      authorizationParams={{ redirect_uri: window.location.origin }}
      interactiveErrorHandler='popup' // Requis pour gérer les défis d'authentification par élévation de privilèges via la fenêtre contextuelle Universal Login
    >
      <Auth0ComponentProvider domain="your-tenant.auth0.com">
        {/* Votre application avec les composants universels Auth0 */}
      </Auth0ComponentProvider>
    </Auth0Provider>
  );
}

Propriétés

PropriétéTypeObligatoireDescription
domainstringOuiDomaine du locataire Auth0 (“YOUR_AUTH0_TENANT.auth0.com”).
previewModebooleanNonLorsque true, ignore l’initialisation du client d’API. Utilisé pour les prévisualisations de la documentation et les démonstrations.
i18nI18nOptionsNonParamètres d’internationalisation, y compris currentLanguage et fallbackLanguage.
themeSettingsThemeSettingsNonConfiguration du thème, y compris le mode (light/dark), la variante du thème (default/minimal/rounded) et les variables CSS.
toastSettingsToastSettingsNonConfiguration des notifications toast, y compris le choix du fournisseur (sonner/custom), le positionnement, la durée et les méthodes toast personnalisées.
cacheConfigQueryCacheConfigNonContrô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.
loaderReact.ReactNodeNonComposant 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éTypeObligatoirePar défautDescription
currentLanguagestringOui-Code de la langue courante (p. ex., “en”, “es”, “fr”)
fallbackLanguagestringNon”en”Code de la langue de remplacement lorsque des traductions sont manquantes

themeSettings
PropriétéTypePar défautDescription
mode”light” | “dark""light”Mode de couleur du thème
theme”default” | “minimal” | “rounded""default”Variante de thème offrant différents styles
variablesStylingVariablesPropriétés CSS personnalisées pour les thèmes commun, clair et foncé
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
Rayon des bordures :
  • de --radius-xs à --radius-9xl
Clair et foncé (couleurs et ombres propres au thème) :Couleurs :
  • --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
Ombres :
  • --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.
PropriétéTypePar défautDescription
provider"sonner""sonner"Utilise la bibliothèque Sonner intégrée pour les toasts
settings.positionToastPosition"top-right"Emplacement d’affichage des toasts : “top-left”, “top-right”, “bottom-left”, “bottom-right”, “top-center”, “bottom-center”
settings.durationnumber4000Durée en millisecondes avant la fermeture automatique du toast (valeur par défaut de Sonner)
settings.maxToastsnumber-Nombre maximal de toasts visibles en même temps
settings.dismissiblebooleantrueIndique si les toasts peuvent être fermés manuellement par l’utilisateur (valeur par défaut de Sonner)
settings.closeButtonbooleantrueIndique s’il faut afficher un bouton de fermeture explicite sur les toasts
Exemple de provider Sonner
const toastSettings = {
  provider: 'sonner', // Facultatif, c’est la valeur par défaut
  settings: {
    position: 'top-center',
    duration: 6000,
    maxToasts: 5,
    dismissible: true,
    closeButton: true
  }
};

É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éTypeValeur par défautDescription
enabledbooleantrueActive 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.
staleTimenumber120000Nombre 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.
gcTimenumber300000Nombre de millisecondes avant que les requêtes inactives soient supprimées par le ramasse-miettes. La valeur par défaut est de cinq minutes.
refetchOnWindowFocusboolean | “always”falseDé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.
<Auth0ComponentProvider
  domain="your-tenant.auth0.com"
  cacheConfig={{
    staleTime: 10 * 60 * 1000,
    gcTime: 15 * 60 * 1000,
    refetchOnWindowFocus: true,
  }}
>
  <App />
</Auth0ComponentProvider>