项目背景简述:前端使用微前端,后端在本地启动了一份,前端更改访地址统一访问本地后端地址进行运行项目,包括数据库都在本地(–模拟离线运行)
问题:项目登录 后端一直返回无登录状态,经排查cookie一直没有传到后台,浏览器一直展示setcookie
问题解析:作为一个前端排查了很久很久之后 发现nginx配置文件中 proxy_cookie_path 增加了两个属性Secure和HttpOnly属性
- secure属性当设置为true时,表示创建的 Cookie 会被以安全的形式向服务器传输,也就是只能在 HTTPS
连接中被浏览器传递到服务器端进行会话验证,如果是 HTTP 连接则不会传递该信息,所以不会被窃取到Cookie 的具体内容。 - HttpOnly属性如果在Cookie中设置了"HttpOnly"属性,那么通过程序(JS脚本、Applet等)将无法读取到Cookie信息,这样能有效的防止XSS攻击。
1、首先排查访问地址等等是不是同一个,按图片中展示的访问地址没有问题
2、排查Domain地址是否统一
3、查看setcookie中的参数是否存在问题
解决方案:在proxy_cookie_path 去掉Secure cookie就可以顺利传入了
以下为我的访问setcookie信息可以 看到参数及其乱