新版本chrome浏览器带来的跨域请求cookie丢失问题(setCookie警告提示)


新版本的chrome浏览器(80版本之后)对cookie的校验更加严格,有页面嵌套的可能会出现问题。

chrome升级到80版本之后(最坑的地方:灰度测试,即也可能存在同一版本不同人的浏览器表现不同),cookie的SameSite属性默认值由None变为Lax,该问题的讨论可参考:https://github.com/google/google-api-javascript-client/issues/561

解决方法1

报文里面set-cookie,添加SameSite=None; Secure=true

  以此设置之后只能走https协议

 

解决方法2
两个跨域的网站部署到一起,例如
www.xxx.com/A网站
www.xxx.com/B网站

  在顶级域名中写入cookie,在子域名中便可以随取随用。

 

解决方法3:
谷歌浏览器里面:
chrome://flags/
  把SameSite by default cookies、Cookies without SameSite must be secure参数设置成disabled

 

总结:

如果对外项目,面向有用户群,一般都是选择方案一,比如淘宝等都是采取的这种方式。

视情况而定可采取方案二。

方案三更适合个人使用场景。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM