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

151
Visualizações
Transformación de propagación de Javascript ES6 que cambia el contenido de devolución de Promise en el ejemplo de autenticación de Nest JS

Estoy usando algunos de los repositorios de muestra de NestJS 19-auth-jwt para implementar un sistema de autenticación. Pero me enfrento a un error.

En el proveedor del módulo de autenticación (auth.services.ts), el método validateUser() usa la sintaxis JS ES6 para eliminar la contraseña del usuario antes de devolverla, como se explica en los documentos .

 async validateUser(username: string, pass: string): Promise<any> { const user = await this.usersService.findOne(username); if (user && user.password === pass) { const { password, ...result } = user; return result; } return null; }

Esto no funciona para mí, el result se ve así:

 { '$__': InternalCache { activePaths: StateMachine { paths: [Object], states: [Object], stateNames: [Array] }, skipId: true, strictMode: true, selected: {}, fields: {}, exclude: null }, '$isNew': false, _doc: { _id: new ObjectId("6299077a1c8989d6bdc3cb34"), first_name: 'Test', email: 'test@test.com', password: '$2b$10$/ndkmG7qLh8RReko7TvsPOC15xd.mVDUY9mC3SVbkVndgZlVDzU4.', __v: 0 } }

No solo no eliminó la contraseña, sino que también está creando una estructura de datos extraña, lo que significa que no puedo obtener los datos del usuario que luego necesito pasar en mi JWT sin cambiar el código para acceder al _doc .

Si solo devuelvo user , funciona (pero obviamente no elimina la contraseña).

Mis preguntas son:

  1. ¿Por qué está pasando esto? Mi mejor conjetura es que esto tiene algo que ver con las promesas, pero no lo sé.
  2. ¿Debo preocuparme por no quitar la contraseña si está bien protegida? Tenga en cuenta que en realidad no lo estoy devolviendo, esta solicitud solo devuelve el JWT que contiene el _id del usuario, no más datos.
  3. Si es una preocupación, ¿qué puedo hacer al respecto?
  4. ¿Es esto un error o mi error?

Estoy usando MongoDB y mongoose, como puede ver. Soy nuevo en Nest por cierto.

Referencia a la línea de código donde sucede esto .

¡Gracias!

EDITAR:

El método findOne en el proveedor de usuarios se ve así; una simple consulta de mangosta.

 async findOneByEmail(email: string): Promise<User | undefined> { return await this.userModel.findOne({ email: email }).exec(); }
about 4 years ago · Juan Pablo Isaza
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