Saltar al contenido

Decodificar token Jwt Reaccionar

Luego de mucho trabajar pudimos encontrar el resultado de este conflicto que ciertos usuarios de este espacio tienen. Si tienes algún detalle que compartir no dudes en dejar tu comentario.

Solución:

Parece que estás usando JWT. Para decodificar este tipo de tokens, simplemente puede usar la biblioteca jwt-decode. Por ejemplo en ReactJS:

import jwt from 'jwt-decode' // import dependency
...
// some logic
await axios.post(`$axios.defaults.baseURL/auth`,  email, password )
    .then(res => 
      const token = res.data.token;
      const user = jwt(token); // decode your token here
      localStorage.setItem('token', token);
      dispatch(actions.authSuccess(token, user));
    )
    .catch(err => 
      dispatch(actions.loginUserFail());
  );

Suponiendo que su encabezado es algo así como Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
luego, después de la línea 2, tiene un espacio inicial. Vea el siguiente ejemplo para ver la diferencia que hace el espacio inicial. Recortar el espacio inicial debería resolver su problema.

var jwt = require("jsonwebtoken");

var token1 = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c";
var token2 = " eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c";

var decode1 = jwt.decode(token1);
var decode2 = jwt.decode(token2);

console.log("without leading space");
console.log(decode1);
//  sub: '1234567890', name: 'John Doe', iat: 1516239022 

console.log("with leading space");
console.log(decode2);
// null

Te invitamos a añadir valor a nuestro contenido informacional participando con tu experiencia en las anotaciones.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *