微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么Chrome在尝试使用Nginx进行像localhost这样的身份验证时会阻止cookie?

如何解决为什么Chrome在尝试使用Nginx进行像localhost这样的身份验证时会阻止cookie?

  • 这是我的问题:

我已经使用Nginx和安全的HTTPS协议在ubuntu上挂载了一个网页,该网页出现了问题,因为当尝试与树莓派进行本地连接时,前端会显示“混合内容:该网页at已通过HTTPS加载,但请求了不安全的XMLHttpRequest端点。此请求已被阻止;必须通过HTTPS提供内容。“

错误是由于我的主机通过HTTPS协议传输而我的本地主机是HTTP,因此要纠正此错误,我必须在本地运行我的网页。

事实证明,当我在指向HTTPS协议上的API后端的本地网络上进行身份验证时,Chrome浏览器阻止了我的Cookie,我看到一条警告。最奇怪的是,它可以在Mozilla Firefox或Postman中使用。

This Set-Cookie didn't specify a "SameSite" attribute and was defaulted to "SameSite=Lax",and was blocked because it came from a cross-site response which was not the response to a top-level navigation. The Set-Cookie had to have been set with "SameSite=None" to enable cross-site usage

有什么解决办法吗?我在互联网上发现您必须使用httpOnly false,secure false和sameOn来设置NodeJS cookie的属性,但没有一个我有用:(有什么想法吗?

解决方法

我已经解决了我的问题,这是一个nginx配置,除了我安装的域之外,它不接受cookie到任何页面,只需将其添加到nginx配置中即可:

location / api / {
   proxy_pass http://localhost:3000/;
   proxy_http_version 1.1;
   proxy_set_header Upgrade $ http_upgrade;
   proxy_set_header Connection 'upgrade';
   proxy_set_header Host $ host;
   proxy_cache_bypass $ http_upgrade;
   proxy_cookie_path / "/; SameSite = None; secure";
}

我刚刚添加了这个proxy_cookie_path /“ /; SameSite = None; secure”;

有关更多信息,请单击此处:How to fix "set SameSite cookie to none" warning? Chrome Extension

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。