Cookie 的 Domain 设置到底该怎么配才安全?
我在部署一个前后端分离的项目,后端设置 Cookie 时指定了 Domain 为 .example.com,但前端在子域名 app.example.com 下死活读不到这个 Cookie,是不是 Domain 配置有啥坑?
我试过不设 Domain、设成 example.com、也试过带点的 .example.com,但要么主站能读子站不能读,要么反过来。网上说法又乱,到底该怎么写才对?
/* 这是我前端用的跨域请求配置(虽然和 Cookie 不直接相关,但怕影响) */
.fetch('/api/login', {
credentials: 'include'
})
其次,确保你的 fetch 请求正确设置了 credentials: 'include',这一步你已经做了,没问题。
你可以试试在后端设置 Cookie 时增加 Path 属性,比如这样:
这段代码设置了 Cookie 的 Domain 为 .example.com,Path 为根目录 /,并且启用了 secure 和 httpOnly 属性来增加安全性。注意,secure 属性意味着这个 Cookie 只能通过 HTTPS 协议发送。
改完之后,重启服务,然后清空浏览器缓存,重新测试一下。希望这次能解决问题。