Maison > interface Web > js tutoriel > Comment décoder manuellement les jetons JWT en JavaScript ?

Comment décoder manuellement les jetons JWT en JavaScript ?

Linda Hamilton
Libérer: 2024-10-29 08:00:30
original
520 Les gens l'ont consulté

How to Decode JWT Tokens Manually in JavaScript?

Concevoir une méthode pour décoder les jetons JWT en JavaScript

Le décodage des jetons JWT sans utiliser de bibliothèques est possible en JavaScript. Ceci peut être réalisé en extrayant manuellement la charge utile du jeton.

Étapes de l'extraction de la charge utile :

1. Décodage Base64 :

Divisez le jeton en trois parties (en-tête, charge utile, signature) à l'aide du '.' personnage. Décodez la deuxième partie (charge utile) à l'aide du codage Base64URL, qui remplace respectivement ' ' et '/' par '-' et '_'.

2. Remplacement de texte Unicode :

La charge utile décodée est une séquence de texte Unicode. Remplacez tous les caractères non imprimables (symboles %) par leurs codes ASCII correspondants (par exemple, pour un espace).

3. Analyse JSON :

Enfin, analysez le texte remplacé au format JSON pour obtenir l'objet de charge utile.

Implémentation :

Navigateur :

<code class="javascript">function parseJwt(token) {
    var base64Url = token.split('.')[1];
    var base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');
    var jsonPayload = decodeURIComponent(window.atob(base64).split('').map(function(c) {
        return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);
    }).join(''));

    return JSON.parse(jsonPayload);
}</code>
Copier après la connexion

Node.js :

<code class="javascript">function parseJwt(token) {
    return JSON.parse(Buffer.from(token.split('.')[1], 'base64').toString());
}</code>
Copier après la connexion

Remarque : Le décodage de la charge utile ne valide pas la signature du jeton. Cela suppose que le jeton n’a pas été falsifié.

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!

source:php.cn
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal