2012-05-03 17 views
16

Ho visto diverse varianti. Supponiamo che io voglia che il mio cookie scada dopo un secondo. Dovrei usareQual è il modo corretto di utilizzare maxAge con Express.js?

app.use(express.session({ secret: 'mysecret', maxAge: new Date(Date.now() + 1000)})); 

o

app.use(express.session({ secret: 'mysecret', maxAge: 1000})); 

o

app.use(express.session({ secret: 'mysecret', cookie: {maxAge: new Date(Date.now() + 1000)}})); 

o

app.use(express.session({ secret: 'mysecret', cookie: {maxAge: 1000}})); 

anche supporre ho impostato il mio biscotto in scadenza in modo corretto ed è scaduto. Se l'utente non riavvia il browser, conserva ancora le informazioni sui cookie finché non lo fanno?

risposta

21

Penso che starai meglio guardando direttamente la fonte.

per Express utilizza la connessione middleware, e qui è il codice per la sessione https://github.com/senchalabs/connect/blob/master/lib/middleware/session.js#L67

e c'è più la documentazione sul sito di connessione http://www.senchalabs.org/connect/session.html

Così si può fare

app.use(express.session({ secret: 'mysecret', cookie: {expires: new Date(Date.now() + 1000)}})); 

o

app.use(express.session({ secret: 'mysecret', cookie: {maxAge: 1000}})); 
+4

penso nella f il metodo irst il modo in cui usi l'opzione "expires" non è corretto! perché la configurazione del middle ware qui verrà valutata solo una volta e tutti gli utenti avranno la stessa data di scadenza. –

+0

Il [collegamento per il codice sorgente] (https://github.com/expressjs/session/blob/8e57b21bef0d53010c4d37f4beee3f0341f3eaa6/session/cookie.js) è cambiato. –

Problemi correlati