Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

537
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda