Pour commencer
@auth0/auth0-express.
Créer un nouveau projet
package.json afin d’utiliser les modules ES et d’ajouter des scripts de démarrage :Installer le SDK
@auth0/auth0-express, ainsi que express et dotenv :Configurer Auth0
- Configuration rapide
- CLI
- Tableau de bord
.env :Générez un secret de session sécurisé :AUTH0_SESSION_SECRET.openssl rand -hex 32. La commande Node fonctionne sur toutes les plateformes, puisque Node est déjà un prérequis.Configurer le middleware
createAuth0() à votre application Express. Le SDK configure automatiquement les routes /auth/login, /auth/logout, /auth/callback et /auth/backchannel-logout.createAuth0()lit automatiquement les informations d’identification dans les variables d’environnement (AUTH0_DOMAIN,AUTH0_CLIENT_ID, etc.)- Configure quatre routes d’authentification sous
/auth/ - Ajoute
req.auth0.clientà chaque requête pour accéder à la session et au jeton
Ajoutez le login, le logout et une route de profil protégée
requiresAuth du SDK et affichez les données de profil utilisateur avec getUser().requiresAuth()de@auth0/auth0-expressprotège les routes — les utilisateurs non authentifiés sont redirigés vers/auth/loginreq.auth0.client.getUser()renvoie le profil de l’utilisateur authentifié- Le lien de login pointe vers
/auth/loginet celui de logout, vers/auth/logout— les deux sont automatiquement montés
Exécutez votre application
- Cliquez sur Login — vous êtes redirigé vers la page Universal Login d’Auth0
- Terminez l’authentification — vous êtes redirigé vers votre application à
/auth/callback - Accédez à
/profile— vous voyez les renseignements sur l’utilisateur - Cliquez sur Logout — votre session est supprimée et vous êtes déconnecté d’Auth0
Utilisation avancée
Appeler une API protégée avec un jeton d’accès
Appeler une API protégée avec un jeton d’accès
audience afin de demander un jeton d’accès pour votre API, puis récupérez-le avec getAccessToken().Ajoutez l’audience de votre API au fichier .env :Utiliser une connexion personnalisée avec returnTo
Utiliser une connexion personnalisée avec returnTo
returnTo :Middleware d’autorisation personnalisé
Middleware d’autorisation personnalisé
https://myapp.com/roles n’est pas incluse par défaut ; ajoutez-la au jeton d’ID à l’aide d’une Action et utilisez un nom de revendication avec espace de noms.Dépannage
'req.auth0 est undefined'
'req.auth0 est undefined'
createAuth0() n’a pas été enregistré avant le gestionnaire de votre route.Correctif : Assurez-vous que app.use(createAuth0()) figure avant toute route qui accède à req.auth0 :Erreur de non-correspondance de l’URL de rappel
Erreur de non-correspondance de l’URL de rappel
http://localhost:3000/auth/callback.Correctif :- Accédez à Auth0 Dashboard → Applications > Applications → votre application → Paramètres de l’application
- Ajoutez
http://localhost:3000/auth/callbackaux URL de rappel autorisées - Ajoutez
http://localhost:3000aux URL de logout autorisées - Cliquez sur Enregistrer les modifications
@auth0/auth0-express utilise /auth/callback (et non /callback, comme express-openid-connect).Variables d’environnement non chargées
Variables d’environnement non chargées
dotenv/config n’est pas importé ou le fichier .env ne contient pas les valeurs requises.Correctif :- Assurez-vous que
import 'dotenv/config'(ourequire('dotenv').config()) se trouve au début de votre fichier d’entrée - Vérifiez que votre fichier
.envcontient les cinq variables requises :AUTH0_DOMAIN,AUTH0_CLIENT_ID,AUTH0_CLIENT_SECRET,APP_BASE_URL,AUTH0_SESSION_SECRET - Déboguez les valeurs manquantes :
Erreur « Invalid state » après la connexion
Erreur « Invalid state » après la connexion
- Assurez-vous que
APP_BASE_URLcorrespond à l’URL utilisée dans votre navigateur (p. ex.,http://localhost:3000) - Effacez les cookies de votre navigateur et réessayez
- En production, assurez-vous d’utiliser HTTPS
Prochaines étapes
- Protéger une API Express — Utilisez
@auth0/auth0-express-apipour valider les jetons d’accès dans votre API - Ajouter l’autorisation — Mettez en œuvre le contrôle d’accès basé sur les rôles
- Personnaliser Universal Login — Personnalisez l’image de marque de votre expérience de connexion
- Ajouter des connexions sociales — Activez Google, GitHub et d’autres connexions sociales
- Mettre en œuvre l’AMF — Ajoutez l’authentification multifacteur
Ressources
- auth0/auth0-express GitHub — Code source et exemples
- Auth0 Community — Obtenez de l’aide auprès de la communauté