2013-01-05 48 views
6

我一直在嘗試使用Express 3.0在Node.js中設置Cookie的到期日期,但沒有任何工作。無法使用Express 3.0在Node.js中設置Cookie'expires'或'maxAge'

我第一次嘗試:

res.cookie('user', user, { maxAge: 9000, httpOnly: true }); 

中,根據Chrome提供了一個無效的到期時間的cookie就結束。 然後我試圖設置「到期」代替,就像這樣:

res.cookie('user', user, { expires: new Date(new Date().getTime()+5*60*1000), httpOnly: true }); 

現在我的Cookie只是一個會話cookie。

有誰知道如何解決這個問題?

+0

感謝您提出這個問題。隨着這個鏈接你的問題帶我到我正在尋找一個解決方案:http://stackoverflow.com/questions/16209145/how-to-set-cookie-in-node-js-using-express-framework – jmunsch

回答

3

你必須使用req.session.cookie

req.session.cookie.expires = false; 

req.session.cookie.maxAge = 5 * 60 * 1000; 

connect docs見。

+0

變成:它實際上在工作。 Chrome只是說時間格式是錯誤的,但它仍然尊重它。 – skerit

+0

你說res.session,然後舉一個req.ession的例子...然後在接受答案後,原提問者說'它'已經工作了....我們如何不幸的Google員工應該得到任何幫助由此? – Spork

2

接受的答案不適用於我......但原始問題的版本確實有效。例如

var language = 'en'; 
//10 * 365 * 24 * 60 * 60 * 1000 === 315360000000, or 10 years in milliseconds 
var expiryDate = new Date(Number(new Date()) + 315360000000); 
this.__res.cookie('lang', language, { expires: expiryDate, httpOnly: true }); 
0

請注意,MAXAGE是milliseconds-

res.cookie('jwtToken', token, { maxAge: 2 * 60 * 60 * 1000, httpOnly: true }); // maxAge: 2 hours 
相關問題