先说一下解决办法
1、修改浏览器配置(不推荐)
地址栏输入:chrome://flags/
找到SameSite by default cookies和Cookies without SameSite must be secure
将上面两项设置为 Disable
2、后端与前端同域(推荐)
我是用这种方式解决的。用nignx代理后端服务器,等于前后端在同一个域下,这样就不存在跨域的问题,也就不存在samesite的验证问题了,所以不管什么级别都能用。
有点小坑的如果用户域名访问的话,前端访问的后端服务器也得是域名,如果用户用ip访问,后端用了域名,那么就还是会出现跨域,然后被samesite拦截。
3、升级https(推荐)
nginx或者后端设置SameSite为NONE(不能是null,因为现在设置null会默认为lax),然后配套设置secure。因为http设置secure无效。
4、通过代码重写CookieSerializer
网上挺多这个办法的,但是我用的shiro,与CookieSerializer冲突,所以并没有效果。不清楚其他框架可以不可以。
小弟第一次发帖,轻喷。。。