2012-05-03 22 views
16

He visto varias variaciones. Supongamos que deseo que mi cookie caduque después de un segundo. ¿Debo usar¿Cuál es la forma correcta de usar 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}})); 

También supongo que yo he puesto mi galleta expirar correctamente y de que haya expirado. Si el usuario no reinicia su navegador, ¿conservará la información de la cookie hasta que lo haga?

Respuesta

21

Creo que será mejor que mires la fuente directamente.

Para expresarlo utiliza conectar middleware, y aquí está el código para la sesión https://github.com/senchalabs/connect/blob/master/lib/middleware/session.js#L67

Y no hay más documentación en el lugar de conexión http://www.senchalabs.org/connect/session.html

Por lo que puede hacer

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

o

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

creo en la f primer método, la forma en que usa la opción "expira" no es correcta. porque la configuración de middleware aquí se evaluará solo una vez y todos los usuarios tendrán la misma fecha de caducidad. –

+0

El [enlace para el código fuente] (https://github.com/expressjs/session/blob/8e57b21bef0d53010c4d37f4beee3f0341f3eaa6/session/cookie.js) ha cambiado. –

Cuestiones relacionadas