问题:请求其它服务器实现登录,因为是未设置在同域名下所以跨站了,登录后返回了cookie,但未设置到浏览器中
解决:跨域名设置时要求非常严格,首先需要是https网站
很多人知道需要在 ajax 里配置 withCredentials 为 true,但光有这个不够,需要满足的条件如下:
- withCredentials
ajax里配置 withCredentials 为 true - 响应头
服务端需配置响应头字段:Access-Control-Allow-Origin,值为允许跨域的域名,不能为星号*
还需要服务端配置另一响应头字段:Access-Control-Allow-Credentials,值为true
- 跨站
请求是否跨站,在非同一父域名下的就是跨站,跨站的情况需要cookie的属性满足以下条件:
cookie字段的 samesite 需要设置 none
将samesite设为none时,有一个要求,就是cookie的 secure 属性需要设置为 true
当secure设为true时,只允许https请求携带cookie,所以请求地址需要是 https 协议
参考:
https://blog.csdn.net/u010059669/article/details/128788645
https://blog.csdn.net/ycsdn10/article/details/121586087
https://blog.csdn.net/weixin_39145520/article/details/129400467 设置samesite需要python3.8以上