2012-05-03 67 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)已更改。 –

相關問題