首页 > 解决方案 > 如何在快速会话中使用 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;

它用于许多发布请求。我能做些什么来完成这项工作?

标签: javascriptnode.jsexpresssessioncookies

解决方案


我刚刚用谷歌搜索了我在控制台中看到的这个警告并来到这里大声笑。它实际上与设置的 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' },
  }),
);

推荐阅读