小编iba*_*ban的帖子

我无法在 Nodejs (Express) 中将 cookie 的 SameSite 属性设置为 None

我们正在为 Nodejs (Express) 中的 Twitter 视图应用程序创建后端。

我正在考虑使用 Twitter Api 进行登录并存储在对会话进行身份验证后返回的令牌,然后在再次访问时从 cookie 恢复会话。

但是,再次访问该cookie时会被阻止,无法恢复会话信息。

我使用的浏览器是 chrome,但是从 chrome 80 版开始,当没有指定 SameSite 属性时,SameSite 属性似乎是 Lax(从同域站点调用时发送 cookie),在这种情况下,前端和后端是不同的域,因此 cookie 被阻止。

所以我试图将 SameSite 属性设置为 None (在任何站点调用时发送 cookie),但我似乎无法很好地设置它并问了这个问题。

我想知道如果我在 app.use(session({})) 的部分有所不同,我是否可以将 SameSite 属性设置为 None,但是......

如果有人知道解决方案,我将不胜感激。

感谢您的帮助。

对应的源代码

callback_url = env.URL + "oauth/callback";

app.use(
    cookieSession({
      name: "session",
      keys: ["thisappisawesome"],
      maxAge: 24 * 60 * 60 * 100
    })
);

app.use(cookieParser());

// Save to session
passport.serializeUser(function(user, done) {
    done(null, user.id);
});

// Restore from Session
passport.deserializeUser(function(user, done) {
    done(null, …
Run Code Online (Sandbox Code Playgroud)

twitter cookies session node.js express

5
推荐指数
1
解决办法
4191
查看次数

标签 统计

cookies ×1

express ×1

node.js ×1

session ×1

twitter ×1