javascript - 如何在快速会话中使用 cookie - connect.sid 将很快被拒绝
问题描述
所以在我的 app.js 文件中我有这个:app.use(session({secret: 'mySecret', resave: false, saveUninitialized: false}));
这工作正常,但会出现警告:
Cookie“connect.sid”将很快被拒绝,因为它的“sameSite”属性设置为“none”或无效值,没有“secure”属性。要了解有关“sameSite”属性的更多信息,请阅读 https://developer.mozilla.org/docs/Web/HTTP/Cookies
然后它会随机停止工作。如果我将会话更改为此:app.use(session({secret: 'mySecret', resave: false, saveUninitialized: false, sameSite: true, cookie: {secure: true}}));
它变得未定义。
我正在尝试保存 2 个不同的 ID:req.session.qrID 和 req.session.visitID;
它用于许多发布请求。我能做些什么来完成这项工作?
解决方案
我刚刚用谷歌搜索了我在控制台中看到的这个警告并来到这里大声笑。它实际上与设置的 express session cookie 跨站点策略有关,更多信息请参见 cookie.sameSite http://expressjs.com/en/resources/middleware/session.html
我通过将其设置为严格来摆脱我的,但如果您愿意,您也可以将其设置为无
app.use(
session({
secret: process.env.SESSION_SECRET!,
resave: false,
saveUninitialized: false,
cookie: { sameSite: 'strict' },
}),
);
推荐阅读
- excel - 模糊字符串匹配 Excel
- scala - 从细化中获取正在细化的类
- ios - 在单击事件后更改 UiButton ImageView.alpha 中,如何保留以前的 alpha?
- kubernetes - 如何在 kubernetes 中调试与 istio 的 mTLS 通信?
- c# - 获取点后有多少个十进制数字
- python - 没有这样的文件或目录:'gdal-config'
- java - rabbitMQ - rabbitmq 面板中的消息计数
- javascript - 为什么 formvalidation.io 插件不适用于 Vue 3?
- angular - Angular 8 [html2canvas Library] - 如何在不打开新窗口的情况下获取屏幕截图?
- python - 安装 python 依赖项时出现 Docker 错误 - 没有名为“数据库”的模块