Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

546
Vistas
¿Cómo extraer correctamente la carga útil del token nestjs/jwt?

Me encontré con un problema al descifrar un token en un proyecto, quiero extraer datos del token entrante, compararlos con los datos de la base de datos y luego realizar ciertas acciones. El problema es que cuando obtengo la carga útil de "jwtService.decode()", no puedo acceder al campo "decodedJwt.email", nido se queja de que "decodedJwt" no es un objeto. Pero si devuelve typeof "decodedJwt", entonces la respuesta es una cadena. Sin embargo, no puedo acceder al campo "correo electrónico" en el código mismo. Si devuelvo "decodedJwt" en esta función, entonces en cartero obtendré el objeto muy necesario con los campos necesarios, incluido el mismo campo de "correo electrónico". ¿Cuál es mi error?

Respuesta de nest: la propiedad 'correo electrónico' no existe en el tipo 'cadena | { [clave: cadena]: cualquiera; }'. La propiedad "correo electrónico" no existe en el tipo "cadena".ts(2339)

 async refreshTokenByOldToken(authHeader: string) { const decodedJwt = this.jwtService.decode(authHeader.split(' ')[1]) return decodedJwt.email }
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

porque su cadena decodedJwt es un tipo de datos diferente. Accedes a información de correo electrónico dos casos;

  1. Si tu paquete @nestjs/jwt
 const decoded: JwtPayload = this.jwtService.decode(yourAccessToken); const email = decoded.email;

O

  1. Conversión de base 64

     const base64Payload = authHeader.split(" ")[1]; const payloadBuffer = Buffer.from(base64Payload, "base64"); const updatedJwtPayload: JwtPayload = JSON.parse(payloadBuffer.toString()) as JwtPayload; const email = updatedJwtPayload.email;
about 4 years ago · Juan Pablo Isaza Denunciar

0

Necesitas lanzar el tipo. Indique explícitamente de qué tipo es.

 type PayloadType = { email: string; } async refreshTokenByOldToken(authHeader: string) { const decodedJwt = this.jwtService.decode(authHeader.split(' ')[1]) as PayloadType; return decodedJwt.email }

También puede hacer referencia PayloadType otros lugares, por ejemplo, en su servicio en lugar de string | { [key: string]: any; } puedes tener una string | PayloadType .

ejemplos de conversión de tipos

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda