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 :Ouvrez le projet :
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.2
Installez le SDK Auth0 TanStack Start
3
Ajouter Tailwind CSS
Installez Tailwind CSS et son plugin Vite :Modifiez Remplacez le contenu de
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.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 :
- Configuration rapide (recommandé)
- CLI
- 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