【发布时间】:2012-12-12 12:36:47
【问题描述】:
因为我在调用expressServer.use(express.session({params})) 时没有定义 maxAge,所以 cookie 的过期时间设置为“Session”。
我想在登录时添加“记住我”功能。如果选择“记住我”,有效期将延长到一个月。
我该怎么做呢?我尝试简单地扩展 maxAge,但这似乎没有做任何事情......
expressServer.get '/blah', (request, response) =>
request.session.cookie.maxAge = 2592000
response.end 'hello there'
感谢您的帮助!
** 编辑 **
我尝试制作一个简单的服务器来测试更新用户的 cookie。我正在使用 Express 3.0.4
当我访问 127.0.0.1:9000/blah 时,浏览器 cookie 的“expires”字段仍然是“session”...
express = require 'express'
expressServer = express()
expressServer.use express.cookieParser()
expressServer.use express.session
secret: 'supersecret'
cookie:
path: '/'
httpOnly: true
expressServer.get '/', (request, response) =>
response.end 'hello'
expressServer.get '/blah', (request, response) =>
request.session.cookie.maxAge = 3600000
response.end 'hello again'
expressServer.listen 9000
console.log 'server running'
咕噜咕噜……
【问题讨论】:
-
但是,如果我清除浏览器 cookie 并访问“/blah”,则“过期”字段设置正确。这是有道理的,因为需要第一次设置 cookie :)
-
好的...它似乎只有在我更新会话时才有效...所以我刚刚添加了
request.session.blah = Date()并且事情神奇地起作用了? -
您可以尝试set the maxAge with a default value,如果未选中复选框(req.session.cookie.expires = false),则使 cookie 过期。
-
有区别吗? @_@
标签: node.js session cookies express connect