且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

nodejs 的 express-session 模块之 cookie.secure 选项使用注意事项

更新时间:2022-08-31 17:14:25

nodejs 的 express-session 模块之 cookie.secure 选项使用注意事项

请注意,将此设置为true时,如果浏览器没有使用HTTPS连接,客户端将不会将cookie发送回服务器。

请注意,secure:true是推荐的选项。但是,它需要一个启用https的网站,即,安全cookie HTTPS是必需的。如果设置了安全,并且您通过HTTP访问您的网站,则不会设置Cookie。如果您的node.js位于代理后面并且正在使用 secure:true,则需要在express中设置“trust proxy”:

var app = express()
app.set('trust proxy', 1) // trust first proxy
app.use(session({
  secret: 'keyboard cat',
  resave: false,
  saveUninitialized: true,
  cookie: { secure: true }
}))
以上内容参考:https://github.com/expressjs/session#cookie
我个人的测试得到的结果是,如果设置了:secure:true 选项,服务端使用“req.session.user = query_doc.userid;”设置Cookie,但是通过Chrome的开发者工具查看,Response Header 中根本不会包含“set-cookie”,

也就是说 Cookie 根本不会发送给客户端浏览器。
rolling:强制在每一个response中都发送session标识符的cookie。如果把expiration设置为一个过去的时间那么 那么过期时间设置为默认的值。roling默认是false。如果把这个值设置为true但是saveUnitialized设置为false,那么cookie不会被包含在响应中(没有初始化的session)

secret 是必需的选项,这是用于签名会话ID cookie的密钥。这可以是单个密钥的字符串或多个秘密的数组。如果提供了一组密钥,只有第一个元素将用于签名会话ID cookie,而在验证请求中的签名时,将考虑所有元素。参考:https://github.com/expressjs/session

======================文档信息===========================

版权声明:非商用***转载-保持署名-注明出处

署名(BY) :testcs_dn(微wx笑)

文章出处:[无知人生,记录点滴](http://blog.csdn.net/testcs_dn)