web-dev-qa-db-fra.com

Comment décoder la charge utile du jeton JWT côté client?

J'utilise un jeton jwt pour l'authentification et je voudrais lire les informations de charge utile côté client. En ce moment, je fais quelque chose comme ça:

var payload = JSON.parse(window.atob(token.split('.')[1])); 

Existe-t-il une meilleure façon de travailler avec des jetons JWT dans le navigateur?

13
Woodsy

De https://github.com/auth0/jwt-decode

téléchargez le fichier .build/jwt-decode.min.js et incluez-le dans le projet.

<script src="js/jwt-decode.min.js"></script>

var token = 'eyJ0eXAiO.../// jwt token';
var decoded = jwt_decode(token);
console.log(decoded);
19
Woodsy

Cette solution simple renvoie un jeton brut, un en-tête et la charge utile:

function jwtDecode(t) {
  let token = {};
  token.raw = t;
  token.header = JSON.parse(window.atob(t.split('.')[0]));
  token.payload = JSON.parse(window.atob(t.split('.')[1]));
  return (token)
}
8
Zdeněk Švarc