我在NodeJS,Express应用程序上我正在使用cookie来实现我的应用程序的某些功能。我需要将cookie生命设置为一个月。
出于这个目的,我已将Cookie maxAge设置为days*hoursPerDay*minutesPerHour*secondsPerMinute*1000
,以实现一个月的时间30*24*60*60*1000
= 2592000000
。
然而,在浏览器中我的cookie到期时间接近10小时。
我缺少什么,我的计算错了?或者我使用了错误的属性(maxAge
)?
Cookie的maxAge
和expiry
属性之间有什么区别?
答案 0 :(得分:0)
maxAge应该以毫秒为单位设置(我错了,因为我提到客户端部分) https://developer.mozilla.org/en-US/docs/Web/API/document.cookie
你在下面设置苦力吗?res.cookie('rememberme','1',{maxAge:900000,httpOnly:true}) http://expressjs.com/api.html#res.cookie
答案 1 :(得分:0)
据我所知,maxAge
不会保存cookie的规格
正如Don't trust Cookie setMaxAge所示,maxAge
的机制类似于 更改/操纵Cookie的过期日期(基于SERVER_SIDE),但浏览器根据CLIENT_SIDE检查Cookie的过期日期 强>
从我的角度来看,这是不当行为。因为为了使max-age
按预期工作,所以应同步客户端/服务器DateTime。