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

本文详细介绍了Node.js中express-session模块的cookie.secure选项使用注意事项。当设置为true时,若浏览器未使用HTTPS连接,客户端将不会发送cookie给服务器。此外,文章还探讨了secure选项与其他配置项如trustproxy之间的相互作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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)

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值