JSON Web Token (JWT) est une norme ouverte pour créer des jetons d’accès en sécurité et compact. Les JWT sont souvent utilisés pour l’authentification dans les applications Web et mobiles. Les JWT sont des chaînes de caractères JSON qui contiennent des informations sur l’utilisateur authentifié, telles que son nom d’utilisateur et ses autorisations.
Le processus d’authentification JWT comprend les étapes suivantes :
L’utilisateur envoie ses informations d’identification au serveur, généralement sous forme de nom d’utilisateur et de mot de passe.
Le serveur vérifie les informations d’identification de l’utilisateur et, si elles sont valides, génère un JWT et le renvoie à l’utilisateur.
L’utilisateur envoie le JWT avec chaque demande à l’API REST protégée. Le serveur vérifie la validité du JWT pour chaque requête et, si le JWT est valide, traite la requête.
npm install jsonwebtoken
const jwt = require("jsonwebtoken");
const user = { username: "johndoe" };
const secretKey = "mysecretkey";
const token = jwt.sign(user, secretKey);
console.log(token);
Dans cet exemple, nous créons un objet utilisateur avec le nom d’utilisateur ‘johndoe’. Nous utilisons ensuite la méthode sign() de la bibliothèque jsonwebtoken pour créer un jeton JWT en utilisant l’objet utilisateur et une clé secrète. Nous imprimons ensuite le jeton pour vérifier qu’il a été créé avec succès.
const token =
"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImpvaG5kb2UiLCJpYXQiOjE2MTkwMTY0NzF9.Y9oZ4v4ZsMgcCYivTzTJN7rvSvKj1xqV3cFtXa2KPO0";
const secretKey = "mysecretkey";
jwt.verify(token, secretKey, (err, decodedToken) => {
if (err) {
console.log("Invalid token");
} else {
console.log(decodedToken);
}
});
Dans cet exemple, nous utilisons la méthode verify() pour vérifier si un jeton est valide. Nous passons le jeton, la clé secrète et une fonction de rappel. Si le jeton est valide, la fonction de rappel est appelée avec l’objet décodé stocké dans la variable decodedToken. Si le jeton est invalide, la fonction de rappel est appelée avec une erreur.
Une fois le token récupéré au /login vous pouvez le copier/coller dans la partie de la requête

Du côté node.js vous devez parcourir les headers pour récupérer le token et authentifier l’utilisateur :
function authenticateToken(req, res) {
const authHeader = req.headers["authorization"];
const token = authHeader && authHeader.split(" ")[1];
if (!token) {
// Si le token n'est pas présent, renvoyer une erreur 401
res.status(401).send("Token not found");
return;
}
// Vérification de la validité du token JWT
jwt.verify(token, secretKey, (err, decodedToken) => {
if (err) {
// Si le token est invalide, renvoyer une erreur 401
res.status(401).send("Invalid token");
return;
}
// données de l'utilisateur ici
decodedToken;
});
}