Skip to main content
Prérequis : avant de commencer, assurez-vous d’avoir installé les éléments suivants :Vérifiez l’installation : node --version && npm --version
@auth0/auth0-tanstack-start-react est actuellement en version beta (1.0.0-beta.0). L’API pourrait changer avant la sortie de la version stable 1.0.

Démarrer

Ce Quickstart montre comment ajouter l’authentication Auth0 à une application TanStack Start React. Vous créerez une application rendue côté serveur comprenant le connexion, le logout, des routes protégées et les renseignements du profil utilisateur, à l’aide du SDK Auth0 TanStack Start React.
1

Créer un nouveau projet

Générez la structure d’un nouveau projet TanStack Start pour ce Quickstart :
Si c’est la première fois que vous exécutez @tanstack/cli sur votre machine, npm vous demandera de confirmer son installation : répondez y pour continuer.
Ouvrez le projet :
2

Installez le SDK Auth0 TanStack Start

3

Ajouter Tailwind CSS

Installez Tailwind CSS et son plugin Vite :
Modifiez vite.config.ts pour ajouter le plugin Tailwind et fixer le serveur de développement au port 3000 :
vite.config.ts
Vite échoue immédiatement lorsque vous utilisez strictPort: true, plutôt que de changer de port sans avertissement. La callback URL de votre Auth0 application est verrouillée sur le port 3000 : comme le navigateur est redirigé vers un port sur lequel rien n’écoute, un changement de port silencieux vous laisse coincé devant une page blanche après avoir approuvé le login screen.
Remplacez le contenu de src/styles.css par :
src/styles.css
4

Créer les fichiers du projet

Créez les fichiers supplémentaires nécessaires à l’integration Auth0 :
5

Configurez votre Auth0 App

L’étape suivante consiste à créer une nouvelle application dans votre tenant Auth0, puis à ajouter les variables d’environnement à votre projet.Vous disposez de trois options pour configurer votre Auth0 App : utiliser l’outil de configuration rapide (recommandé), exécuter une commande CLI ou procéder à la configuration manuelle à partir du Dashboard :
Créez une Auth0 App et copiez le fichier .env prérempli avec les bonnes valeurs de configuration.
6

Créez l’instance du serveur Auth0

Ajoutez l’instance Auth0 server dans src/auth.server.ts. L’instance Auth0 server lit la configuration à partir des environment variables que vous venez de définir :
src/auth.server.ts
7

Enregistrez le middleware Auth0

Ajoutez ce qui suit à src/start.ts pour enregistrer le middleware de requête Auth0 :
src/start.ts
Importez auth0Middleware depuis le sous-chemin /server/middleware, et non depuis le fichier barrel /server, puisque start.ts est également compilé dans le bundle client.
Ce middleware monte automatiquement les routes d’authentication suivantes :
  • /auth/login - Route de login
  • /auth/callback - Route de callback
  • /auth/logout - Route de logout
  • /auth/profile - Route du profil utilisateur
  • /auth/backchannel-logout - Route de logout par canal secondaire
8

Intégrez Auth0 au router

Modifiez src/router.tsx afin que le context du router contienne l’état d’authentification résolu par Auth0. TanStack Start exige que ce fichier exporte une fonction nommée getRouter :
src/router.tsx
9

Mettre à jour la route racine

Modifiez src/routes/__root.tsx pour résoudre le state d’authentification avant le render et encapsuler l’application dans Auth0Provider :
src/routes/__root.tsx
Cela remplace createRootRoute par createRootRouteWithContext<RouterContext>(), ce qui permet de typer l’arborescence des routes avec context.auth0.
10

Créer des composants Login, Logout et profil

Ajoutez le code du composant aux fichiers créés à l’étape 4 :Remplacez ensuite le contenu par défaut de src/routes/index.tsx (la page Welcome to TanStack Start générée par le gabarit) par :
src/routes/index.tsx
useLogin et useLogout déclenchent une navigation complète du navigateur plutôt qu’une transition de router client-side, car /auth/* est géré par le middleware côté serveur et le session cookie nécessite un rechargement de la page pour prendre effet.
11

Protéger une route

Ajoutez une route protégée /dashboard dans src/routes/dashboard.tsx à l’aide du garde requireAuth. Celui-ci redirige les utilisateurs non authentifiés vers /auth/login du côté serveur, avant que le moindre code HTML ne soit envoyé au navigateur :
src/routes/dashboard.tsx
12

Lancez votre appli

Votre application est accessible à l’adresse http://localhost:3000.
Point de contrôleVous devriez maintenant avoir une page de connexion Auth0 entièrement fonctionnelle qui s’exécute sur votre localhost