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

183
Vistas
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
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