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
Libérer: 2024-10-29 18:30:28
original
1112 Les gens l'ont consulté

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];
Copier après la connexion

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(''));
Copier après la connexion

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();
Copier après la connexion

4. Analyser la charge utile JSON

Convertir la chaîne de charge utile décodée en JSON :

const payloadObject = JSON.parse(payload);
Copier après la connexion

Exemple :

Étant donné le jeton : xxxxxxxxxx. XXXXXXXX.xxxxxxxx, la charge utile décodée ressemblerait à :

{exp: 10012016, name: "john doe", scope: ["admin"]}
Copier après la connexion

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 de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal