为什么我会收到“通过指定其 SameSite 属性来指示是否在跨站点请求中发送 cookie”?

Squ*_*rrl 47 cookies express-session

在 Chrome 警告中,它说“如果 cookie 应该在跨站点请求中发送,则指定 SameSite=None 和安全。这允许第三方使用。” 如何使用 express-session 正确执行此操作?

app.use(
  cors({
    credentials: true,
    origin: ["http://localhost:3000", "https://elated-jackson-28b73e.netlify.app"] //Swap this with the client url 
  })
);
var sess = {
  secret: 'keyboard cat',
  cookie: {}
}

if (app.get('env') === 'production') {
  app.set('trust proxy', 1) // trust first proxy
  sess.cookie.secure = true // serve secure cookies
  sess.cookie.sameSite = 'none'
}

app.use(session(sess))
Run Code Online (Sandbox Code Playgroud)

sif*_*_in 5

您之所以收到此消息,是因为您正在使用来自另一个站点的资源,并且该服务器正在尝试设置“cookie”,但是它没有设置 SameSite 属性,这是在较新版本的浏览器中报告的。

如果您尝试从通常没有安装 SSL 的本地计算机 (xampp)访问服务器页面,也可能会显示此信息

在您的服务器页面中设置标题行(如果在 PHP 中)如下:
header("Set-Cookie: cross-site-cookie=whatever; SameSite=None; Secure");

(记住:这必须从服务器端解决。)

  • 如果我的 React 应用程序出现此错误怎么办?有什么办法可以达到同样的效果吗? (5认同)
  • 我应该在哪个文件中添加这段代码? (2认同)