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

304
Vistas
tiempo de espera de la sesión en una aplicación nodejs + express usando setTimeOut( ) y una devolución de llamada, y redirigir al usuario a la página de inicio de sesión

Estoy tratando de implementar un tiempo de espera de sesión para una aplicación nodejs + express + pasaporte. Estoy usando setTimeOut() para llamar a un método en el que estoy llamando a req.session.destroy() y req.logout() (para cerrar la sesión del pasaporte) para invalidar la sesión.

Estoy pasando el req y res a setTimeOut - setTimeOut(timeOutMethod, 10000, req, res). Veo que la sesión se establece en nulo. Verifiqué los objetos de solicitud en diferentes momentos y coinciden.

Quiero poder llamar/cerrar sesión al punto final en timeOutMethod() (esta es una devolución de llamada para setTimeOut()) o volver a la página principal, pero no habrá contexto. No puedo usar un objeto res para redirigir al usuario. La aplicación en realidad se bloquea en este punto.

¿Hay alguna forma de redirigir o actualizar la página para que el usuario vuelva a la pantalla de inicio de sesión?

¿Puede alguien por favor ayudarme con esto? ¡Muchísimas gracias de antemano!

:Código:

 router.get(callback_url, passport.authenticate(login_strategy, {failureFlash: true, failureRedirect: '/page'}), function (req, res) { if(req && req.session){//max timeout is set to 1 min for testing... setTimeout(sessionTimeOut, 1 * 60 * 1000, req, res); } res.redirect('/'); }); // a callback for session timeout... function sessionTimeOut(req, res){ if (req.session) { req.session.destroy(err => { if (err) { //log statements } else { //log statements if (req.user) { //remove passport.js session user value if present req.logout(); } } }); req.session = null; } else { //log statements } res.redirect('/page'); } //error thrown when es.redirect('/page') as we don't have the context here. _http_outgoing.js:561 [0] throw new ERR_HTTP_HEADERS_SENT('set'); [0] ^ [0] [0] Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client [0] at ServerResponse.setHeader (_http_outgoing.js:561:11)
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