Maison >interface Web >js tutoriel >Comment décoder les jetons JWT en JavaScript sans bibliothèques ?

Comment décoder les jetons JWT en JavaScript sans bibliothèques ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-29 18:30:28997parcourir

How to Decode JWT Tokens in JavaScript Without Libraries?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn