Tokens JWT

Les JSON Web Tokens (JWT) fournissent une méthode sécurisée pour transmettre des informations entre parties sous forme d’objet JSON.

Structure d’un JWT

Un JWT se compose de trois parties séparées par des points :

header.payload.signature

En-tête

{
"alg": "HS256",
"typ": "JWT"
}

Payload

{
"sub": "1234567890",
"email": "[email protected]",
"iat": 1516239022,
"exp": 1516242622
}

Signature

La signature est créée avec :

HMACSHA256(
base64UrlEncode(header) + "." +
base64UrlEncode(payload),
secret
)

Créer des tokens JWT

Exemple Node.js

const jwt = require('jsonwebtoken');
const payload = {
userId: '12345',
scope: ['email', 'contacts']
};
const token = jwt.sign(payload, process.env.JWT_SECRET, {
expiresIn: '1h',
issuer: 'your-app',
audience: 'brevo-api'
});

Exemple Python

import jwt
import datetime
payload = {
'user_id': '12345',
'email': '[email protected]',
'exp': datetime.datetime.utcnow() + datetime.timedelta(hours=1),
'iat': datetime.datetime.utcnow()
}
token = jwt.encode(payload, 'your-secret-key', algorithm='HS256')

Utiliser un JWT avec l’API Brevo

Terminal window
curl -X GET "https://api.brevo.com/v3/account" \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." \
-H "Accept: application/json"

Validation d’un token

const validateToken = (token) => {
try {
const decoded = jwt.verify(token, process.env.JWT_SECRET);
return { valid: true, payload: decoded };
} catch (error) {
return { valid: false, error: error.message };
}
};

Bonnes pratiques

  • Utilisez des secrets forts et aléatoires
  • Définissez des durées d’expiration adaptées
  • Validez les tokens à chaque requête
  • Utilisez exclusivement HTTPS
  • Stockez les secrets de manière sécurisée
  • Implémentez une logique de rafraîchissement de token
Assistant AI

Bonjour ! Posez-moi vos questions sur la documentation.

Commencez gratuitement avec Brevo