nginx配置客户端保存cookie的实现
问题
昨晚在部署一个前人留下的dotnet core后台服务,在服务器上小心翼翼的修改前端代码,把ajax请求地址换成了localhost,登录、请求数据正常。但是把localhost换成ip地址,发现登录正常,cookie也返回了,但验证登录状态(向后台发送请求,验证携带的cookie)时报错了,一直401
这个程序的前端、后端都不是我写的,问了前端开发:

这说的没错,cookie确实返回来了,但再次请求时请求头没有携带cookie。奇了怪,然后就发现了:

根据提示,浏览器是想保存cookie的,但Set-Cookie里面设置了Secure,就被阻止了。

解决
那我就把Secure去掉!
同时samesite=none也要修改,因为samesite=none必须要和secure连用,可以把值改成strict
Strict最为严格,完全禁止第三方 Cookie,跨站点时,任何情况下都不会发送 Cookie。换言之,只有当前网页的 URL 与请求目标一致,才会带上 Cookie。
nginx里面设置:
proxy_cookie_flags ~ nosecure samesite=strict;
再说点
cookie属性secure是只能在https下访问,我这里是从https环境迁移至http环境(这种逆向不安全的方式还是不要学)。
关于nginx这部分的设置可以参考 nginx官方文档:proxy_cookie_flags
我设置的nginx如下,但具体情况还要考虑实际用途:
location /rf/ {
proxy_pass http://localhost:5001/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Real-PORT $remote_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cookie_path / /;
proxy_set_header Cookie $http_cookie;
proxy_cookie_flags ~ nosecure samesite=strict;
}
到此这篇关于nginx配置客户端保存cookie的实现的文章就介绍到这了,更多相关nginx客户端保存cookie内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Nginx隐藏index.php和Pathinfo模式配置例子
这篇文章主要介绍了Nginx隐藏index.php和Pathinfo模式配置例子,需要的朋友可以参考下2014-04-04
filebeat收集多个域名网站日志并存储到不同es索引库过程
这篇文章主要为大家介绍了filebeat收集多个域名网站日志并存储到不同es索引库过程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2022-08-08
Nginx 实现 TCP/DUP流量按 IP 动态转发操作方法
为优化网络性能和提升服务可用性,通过Nginx配置stream模块根据客户端IP地址动态转发TCP请求至不同后端服务器节点,适用于数据库代理、TCP服务负载均衡及地域或来源IP分流的流量调度等场景,本文给大家介绍Nginx 实现 TCP/DUP流量按 IP 动态转发的操作2024-10-10


最新评论