Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

150
Views
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
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!