2012-01-21 12 views
5

Lo sto facendo in questo modo:In Node.js Express/Connect, c'è un modo per impostare la sessione su infinito?

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

Quando annoto nel mio Redis e inserite TTL sess:..., sembra che ci sia una scadenza in questa sessione.

Come posso fare in modo che le sessioni non scadano mai? (per tutto). Voglio anche che i cookie non scadano mai.

+3

I cookie (inclusi i cookie di sessione) non possono avere date di scadenza infinite. Il più grande che puoi ottenere, in pratica, è una data nel 2038 ... dopo di ciò, il campo Timestamp verrà sovrascritto. –

+0

OK, sicuro che funzioni. Come faccio a impostarlo su 2038? – TIMEX

+3

@TIMEX non è mai in scadenza è sciocco. – Raynos

risposta

4

Come menzionato nel Connect guide on the session middleware page (Express utilizza Connect internamente), è possibile specificare l'opzione MaxAge sessioni:

  • biscotto impostazioni dei cookie di sessione, inadempiente a {percorso: '/', HttpOnly: true , MaxAge: 14400000}

Esempio:

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 è in millisecondi, quindi ad esempio un giorno = 86400000

+0

Un giorno in millisecondi è in realtà più lungo di "86.400", è lungo 86.400.000 "di millisecondi. '(1 * 24 * 60 * 60 * 1000) => (giorno * ore * minuti * secondi * millisecondi)' –

+0

404 Il collegamento incollato non funziona :) –

+1

@AviramNetanel, grazie, ho aggiornato il collegamento. – alessioalex

Problemi correlati