2012-01-21 18 views
5

lo estoy haciendo de esta manera:En Node.js Express/Connect, ¿hay alguna manera de configurar la sesión hasta el infinito?

app.use(express.session({ 
       cookie:{domain:"."+settings.c.SITE_DOMAIN}, 
       secret:'abc', 
       store: redis_store, 
       })); 

Cuando registro en mis Redis y tipo TTL sess:..., parece que hay una caducidad en esta sesión.

¿Cómo puedo hacer que las sesiones nunca caduquen? (para todo). También quiero que las cookies nunca expiren.

+3

Las cookies (incluidas las cookies de sesión) no pueden tener fechas de vencimiento infinitas. Lo más grande que se puede obtener, prácticamente, es una fecha en 2038 ... después de eso se desbordará el campo de marca de tiempo. –

+0

OK, seguro que funciona. ¿Cómo lo configuro en 2038? – TIMEX

+3

@TIMEX que nunca expira es una tontería. – Raynos

Respuesta

4

Como se mencionó en la Connect guide on the session middleware page (Express utiliza Conectar internamente), puede especificar una opción MaxAge de sesiones:

configuración de las cookies de sesión
  • de galletas, por defecto a {ruta: '/', httpOnly: true , MaxAge: 14400000}

Ejemplo:

connect(
     connect.cookieParser() 
    , connect.session({ secret: 'keyboard cat', cookie: { maxAge: 60000 }}) 
    , connect.favicon() 
    , function(req, res, next){ 
     var sess = req.session; 
     if (sess.views) { 
     res.setHeader('Content-Type', 'text/html'); 
     res.write('<p>views: ' + sess.views + '</p>'); 
     res.write('<p>expires in: ' + (sess.cookie.maxAge/1000) + 's</p>'); 
     res.end(); 
     sess.views++; 
     } else { 
     sess.views = 1; 
     res.end('welcome to the session demo. refresh!'); 
     } 
    } 
).listen(3000); 

Nota: maxAge está en milisegundos, por ejemplo, un día = 86400000

+0

Un día en milisegundos es en realidad más largo que '86,400', es' 86,400,000' milisegundos de largo. '(1 * 24 * 60 * 60 * 1000) => (día * horas * minutos * segundos * milisegundos)' –

+0

404 El enlace que pegó no funciona :) –

+1

@AviramNetanel gracias, he actualizado el enlace. – alessioalex

Cuestiones relacionadas