chrome超过80版本后默认禁用第三方cookie,本地无法跨域调试

tech2023-05-29  46

现象:本地(http)请求线上接口(https)的时候,session无法通过cookie带给后端,造成后端无法和前端完成session用户认证;通过多浏览器测试,只有谷歌80版本以上有这种问题,火狐,IE等都没这个问题;

原因:因为谷歌浏览器大于80的版本使用了 cookie的新属性Samesite,由于没有指明SameSite的取值,chrome默认将其设置为了Lax;

一:尝试方法:我的laravel框架内加入:$response->headers->add(['Set-Cookie' => 'HttpOnly;Secure;SameSite=None']);  我自己测试过没有生效,但是网上又一堆人说可以后端设置,所以写下来,可能是我自己哪里没设置好;

二:直接禁用谷歌浏览器的对应设置

A:在Chrome中打开新的标签页 chrome://flags/

B:搜索cookie,禁用SameSite by default cookies 和 Cookies without SameSite must be secure

 

参考文档

1,参考文章:第三方cookie是如何窥视你的? https://blog.csdn.net/from_the_star/article/details/105051202 

2,参考文章:chrome80后默认禁用第三方cookie,本地无法跨域调试怎么办 https://blog.csdn.net/from_the_star/article/details/105224380?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.channel_param

最新回复(0)