Maison >interface Web >js tutoriel >Comment décoder les jetons JWT en JavaScript sans bibliothèques ?
Décodage des jetons JWT en JavaScript sans bibliothèques
Le décodage de la charge utile d'un jeton Web JavaScript (JWT) peut être réalisé sans recourir à des bibliothèques externes . Cela offre un meilleur contrôle sur le processus de décodage et permet une intégration transparente avec l'application frontale.
Processus de décodage
Le format JWT se compose de trois segments séparés par des points, avec le deuxième segment contenant la charge utile. Pour décoder la charge utile :
1. Extrayez le segment de charge utile :
const payloadSegment = token.split('.')[1];
2. Décoder la charge utile (navigateur)
Pour les navigateurs, la charge utile est codée en base64url, qui diffère de la base64 classique. Décodez-le comme suit :
const payload = decodeURIComponent(window.atob(payloadSegment).split('').map(c => '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2)).join(''));
3. Décoder la charge utile (Node.js)
Dans Node.js, la charge utile n'est pas codée en base64url. Décodez-le à l'aide du module Buffer :
const payload = Buffer.from(payloadSegment, 'base64').toString();
4. Analyser la charge utile JSON
Convertir la chaîne de charge utile décodée en JSON :
const payloadObject = JSON.parse(payload);
Exemple :
Étant donné le jeton : xxxxxxxxxx. XXXXXXXX.xxxxxxxx, la charge utile décodée ressemblerait à :
{exp: 10012016, name: "john doe", scope: ["admin"]}
Remarque :
Cette méthode extrait uniquement la charge utile sans valider la signature du jeton. Le jeton aurait pu être falsifié avant le décodage.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!