无法使用Express 3.0在Node.js中设置cookie'expires'或'maxAge'

ske*_*rit 8 cookies google-chrome node.js express

我一直在尝试使用Express 3.0在Node.js中设置我的cookie的到期日期,但没有任何工作.

我的第一次尝试:

res.cookie('user', user, { maxAge: 9000, httpOnly: true });
Run Code Online (Sandbox Code Playgroud)

根据Chrome,只是以cookie无效,到期时间结束.然后我尝试设置'expires',如下所示:

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

现在我的cookie只是一个会话cookie.

有谁知道如何解决这一问题?

asg*_*oth 5

您必须使用req.session.cookie

req.session.cookie.expires = false;

req.session.cookie.maxAge = 5 * 60 * 1000;
Run Code Online (Sandbox Code Playgroud)

另请参阅connect docs


Spo*_*ork 5

接受的答案对我不起作用..但原始问题的版本确实有效。例如

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 });
Run Code Online (Sandbox Code Playgroud)


Var*_*mar 5

请注意,maxAge以毫秒为单位-

res.cookie('jwtToken', token, { maxAge: 2 * 60 * 60 * 1000, httpOnly: true }); // maxAge: 2 hours
Run Code Online (Sandbox Code Playgroud)

  • 支持对以maxise为单位的maxAge的评论! (2认同)