2013-01-05 2 views
6

Express 3.0を使用してNode.jsにCookieの有効期限を設定しようとしましたが、何も機能していません。Express 3.0を使用してNode.jsのクッキー 'expires'または 'maxAge'を設定できません

私の最初の試み:

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

ジャストクロームによると、無効な有効期限の時間を持っているクッキーで終わります。

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

そして今、私のクッキーがちょうどセッションクッキーです: は、その後、私はそうのように、代わりに「有効期限が切れ」を設定してみました。

誰でもこれを解決する方法を知っていますか?

+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

それは実際に働いていた。クロムは、単に時間形式が間違っていると言っていますが、それでもそれを尊重しています。 – 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