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

124
Vistas
¿Cómo renderizo una plantilla pug en caso de éxito o fracaso de la autenticación (passport.js) con variables de la plantilla pug? (exprés, pasaporte.js, pug)

Estoy trabajando en el sistema de inicio de sesión usando pasaporte.js y express con plantillas pug. Estoy tratando de mostrar la página de inicio de sesión con un mensaje de falla, y si tiene éxito, quiero redirigir al usuario a la última página en la que ha estado, cuya URL se pasa como entrada oculta dentro de la plantilla pug. Luego quiero tomar ese valor de esa entrada oculta y ponerlo dentro de successRedirect , sin embargo, dice que el requisito req is not defined :

 router.post("/login", body('backurl').trim().escape(), passport.authenticate("local", { successRedirect: (req.body.backurl), failWithError: true }), function(err, req, res, next) { return res.render('login', { message: 'Unable to login, the password or the username are wrong' }) }

según tengo entendido, eso sucede porque no tiene un req ya que no hay una función con req, res, next , así que traté de envolverlo con una función que lo tenga:

 router.post("/login", body('backurl').trim().escape(), function(req, res, next) { passport.authenticate("local", { successRedirect: (req.body.backurl), failWithError: true }), function(err, req, res, next) { return res.render('login', {message: 'Unable to login, the password or the username are wrong'}) } } );

pero sigue recargando y no funciona y no va a ninguna URL.

¿Alguien puede ayudarme a solucionar esto y mover al usuario a la URL desde la entrada oculta mientras se presenta una plantilla pug en caso de falla con las variables?

¡Gracias!

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Puede representar una vista con una solicitud get(). Con una solicitud de publicación (), debe redirigir y si desea mostrar un mensaje al usuario, puede usar el paquete express-flash.

 router.post("/login", (req, res, next) => { passport.authenticate("local", (err, user) => { if (!user) { req.flash('error', { msg: 'Unable to login, the password or the username are wrong') return res.redirect('/login'); } res.redirect(req.body.backurl); } });

De esta manera usted puede tener más detalles sobre lo que sucedió.

about 4 years ago · Juan Pablo Isaza Denunciar
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