Avant de commencer l’intégration d’Auth0 avec votre application Node.js, sachez qu’Auth0 offre la prise en charge du protocole OpenID Connect (OIDC). Si vous souhaitez intégrer OpenID Connect avec Node.js, vous pouvez consulter ce Guide OpenID Connect Node.js.

Comment utiliser Auth0 avec Node.js

Auth0 est une puissante plateforme d’authentification et d’autorisation qui assure une gestion sécurisée et transparente des utilisateurs pour vos applications Node.js. L’intégration d’Auth0 dans votre projet Node.js vous permet de gérer facilement l’authentification des utilisateurs, la gestion des comptes et le contrôle d’accès, tout en garantissant une sécurité de premier plan. Dans ce guide, nous vous expliquerons les étapes pour intégrer Auth0 dans votre application Node.js.

S’inscrire sur Auth0

Pour commencer, vous devez créer un compte Auth0 sur https://auth0.com/signup. Une fois votre compte créé, vous aurez accès à votre tableau de bord Auth0, où vous pourrez gérer vos applications, configurer les paramètres d’authentification, et bien plus encore.

Créer une nouvelle application

Dans le tableau de bord Auth0, cliquez sur l’onglet « Applications » puis sur le bouton « Create Application ». Donnez un nom à votre application et sélectionnez « Regular Web Applications » comme type d’application. Cliquez sur le bouton « Create » pour créer votre nouvelle application.

Configurer les paramètres de l’application

Après avoir créé votre application, vous serez redirigé vers la page des paramètres. Ici, vous pouvez configurer différents paramètres pour votre application, tels que les URL de callback autorisées, les URL de déconnexion autorisées, et plus encore. Assurez-vous de revoir et de configurer ces paramètres attentivement selon les besoins de votre application.

Installer le SDK Auth0 pour Node.js

Pour intégrer Auth0 dans votre application Node.js, vous devez installer le package express-openid-connect. Ouvrez votre terminal et naviguez vers le répertoire de votre projet. Exécutez la commande suivante pour installer le SDK :

npm install express-openid-connect

Configurer le middleware d’authentification

Dans votre application Node.js, vous devez configurer le middleware d’authentification pour gérer l’authentification des utilisateurs. Importez les modules nécessaires et configurez le middleware Auth0 comme suit :

const express = require('express')
const app = express()
const { auth } = require('express-openid-connect')
const config = {
authRequired: false,
auth0Logout: true,
secret: 'YOUR_AUTH0_SECRET',
baseURL: 'http://localhost:3000',
clientID: 'YOUR_AUTH0_CLIENT_ID',
issuerBaseURL: 'https://YOUR_AUTH0_DOMAIN',
}
// ...
app.use(auth(config))

Remplacez 'YOUR_AUTH0_SECRET', 'YOUR_AUTH0_CLIENT_ID' et 'https://YOUR_AUTH0_DOMAIN' par vos véritables identifiants Auth0.

Étape 6 : Protéger les routes

Maintenant que vous avez configuré le middleware d’authentification, vous pouvez protéger des routes spécifiques de votre application en ajoutant le middleware requiresAuth à ces routes :

const { requiresAuth } = require('express-openid-connect')
app.get('/protected-route', requiresAuth(), (req, res) => {
// Handle protected route logic here
})

Cela garantit que seuls les utilisateurs authentifiés peuvent accéder à la route protégée.

Données utilisateur

Pour accéder aux données utilisateur, vous pouvez utiliser l’objet req.oidc.user, qui contient des informations sur l’utilisateur authentifié. Par exemple, pour afficher le nom de l’utilisateur sur une page, vous pouvez utiliser :

app.get('/profile', requiresAuth(), (req, res) => {
const { name } = req.oidc.user
res.send(`Hello, ${name}!`)
})

Gérer la déconnexion

Pour gérer la déconnexion de l’utilisateur, vous pouvez ajouter une route qui appelle la méthode req.logout :

app.get('/logout', (req, res) => {
req.logout()
res.redirect('/')
})

Tester votre application

Vous pouvez maintenant tester votre application Node.js avec l’intégration Auth0. Démarrez votre serveur et naviguez vers la route protégée. Vous devriez être redirigé vers la page de connexion Auth0, où vous pouvez vous authentifier avec vos identifiants Auth0. Une fois authentifié, vous serez redirigé vers la route protégée.

Félicitations ! Vous avez réussi à intégrer Auth0 avec votre application Node.js. Vous disposez désormais d’un système de comptes sécurisé et efficace qui gère l’authentification et la gestion des utilisateurs avec facilité.