Hilshire / blog

temporary blog
2 stars 0 forks source link

跨域 cookie #34

Closed Hilshire closed 4 years ago

Hilshire commented 4 years ago

由于 cookie 往往会携带用户认证信息,所以跨域和cookie似乎不太应该出现在一起,这种行为显然是非常危险的。不过游览器还是提供了跨域携带cookie的方法。

你必須在 XHR 設定 withCredentials 或是 fetch 的選項中設置 { credentials: 'include' },因為這也是一個跨域請求,所以也必須遵照 CORS 要件加入 Access-Control-Allow-Origin

简单来说,需要一个额外的设置。特殊的是:

对于附带身份凭证的请求,服务器不得设置 Access-Control-Allow-Origin 的值为“*”。

显然,你不应该带着cookie到处乱逛。

而后端呢,也得多费一点事。

如果服务器端的响应中未携带 Access-Control-Allow-Credentials: true ,浏览器将不会把响应内容返回给请求的发送者。

参考文章:

和 CORS 跟 cookie 打交道

Access_control_CORS