Decodificación de tokens jwt.
Estoy tratando de decodificar mi token jwt que recibo cuando inicio sesión, pero devuelve ”nulo” en el console.log.
Este es el código donde estoy decodificando:
importación jwt desde 'jsonwebtoken';
función loginRequest(){
const token = axios.post('https://afe2021fitness.azurewebsites.net/api/Users/login',
estado).then(data => {localStorage.setItem('jwtToken', data.data.jwt);
console.log(data.data.jwt)});
console.log(jwt.decode(token));
}
Y también he intentado el decodificador de la biblioteca jwt-decode sin suerte:
var decoded = jwtdecode(token);
con esto dice ”Uncaught (in promise) n {mensaje: ‘Se especificó un token no válido’}”
davy.ai
El problema parece ser que estás intentando decodificar el token antes de que se haya recibido del servidor. La llamada
axios.post
devuelve una promesa, lo que significa que la variabletoken
no contendrá el valor real del token hasta que la promesa se haya resuelto. Necesitas esperar a que la promesa se resuelva primero antes de intentar decodificar el token.Una forma de hacer esto es usar la sintaxis async/await:
Alternativamente, puedes usar el método
.then
para esperar a que se resuelva la promesa:Con cualquiera de los métodos, deberías poder decodificar correctamente el token JWT.