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

177
Views
El restablecimiento de la contraseña de Bcrypt no se toma, pero el resto de la función funciona

Estoy en el paso final de mi flujo de trabajo de restablecimiento de contraseña y estoy experimentando un problema extraño en el que el código se ejecuta correctamente, imprime mi documento de artist y las palabras "Contraseña reenviada con éxito".

Luego, sin detenerse, se ejecuta por segunda vez e imprime null para el artista y muestra el error "El token de restablecimiento de contraseña no es válido o ha caducado".

Parte confusa La nueva contraseña no se acepta, pero las variables resetPasswordToken y resetPasswordExpires están configuradas en null , al igual que la parte de éxito de las solicitudes de declaración if.

Función de restablecimiento de contraseña

 const bcrypt = require('bcrypt'); module.exports.submitNewPassword = async (req, res) => { const slidedHeaderToken = req.headers.referer.slice(-40); const artist = await Artist.findOne({ resetPasswordToken: slidedHeaderToken, resetPasswordExpires: { $gt: Date.now() } }); console.log(artist); if (!artist) { req.flash('error', "Password reset token is invalid or has expired"); res.render('artists/reset') } else { const hashedPassword = bcrypt.hashSync(req.body.password, 12) artist.password = hashedPassword; artist.resetPasswordToken = null; artist.resetPasswordExpires = null; artist.save(); console.log("Successfully resubmitted password"); req.flash('success', "Successfully resubmitted password, please login with your updated credentials"); res.redirect('login'); } }

Ruta

 const passport = require('passport'); router.route('/reset/:token') .get( artists.renderPasswordReset) .post( catchAsync (artists.submitNewPassword ))

En mi aplicación, los artistas son usuarios, pero no estoy seguro si debo aclarar eso en algún lugar para el pasaporte o bcrypt.

¿Alguna idea de qué está pasando con mi código y por qué 2/3 de él funciona?

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!