2012-05-03 63 views
16

我已经看到了几个变化。假设我希望我的cookie在一秒钟后过期。我应该使用在Express.js中使用maxAge的正确方法是什么?

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

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

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

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

也想我已经把我的cookie正确过期和已过期。如果用户不重新启动他们的浏览器,他们仍然保留cookie信息,直到他们这样做?

回答

21

我认为你最好直接看源代码。

对于快递它使用连接中间件,这里的会话https://github.com/senchalabs/connect/blob/master/lib/middleware/session.js#L67

的代码,并在Connect网站那里有更多的文档 http://www.senchalabs.org/connect/session.html

所以,你可以做

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

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

我想在f第一种方法你使用“expires”选项的方式不正确!因为这里的中间件配置只会被评估一次,所有用户将具有相同的到期日期。 –

+0

[源代码链接](https://github.com/expressjs/session/blob/8e57b21bef0d53010c4d37f4beee3f0341f3eaa6/session/cookie.js)已更改。 –

相关问题