这是我的重定向端点的响应头,状态码为302。
"Location": "http://<target-domain>",
"Set-Cookie": "username=user1;"
我可以看到它正确地重定向到302.但是没有在<target-domain>
上设置cookie
看起来标题"Set-Cookie": "username=user1;"
在重定向时未传递给<target-domain>
。
我在我的开发工具中看到了2个网络活动,
Location
和Set-Cookie
。Location
和Set-Cookie
。有没有办法在<target-domain>
上设置Cookie?
答案 0 :(得分:1)
您不能在您所在域以外的域上设置Cookie,所以基本上没有。唯一的例外是,如果您当前的域名类似于example.com
,您可以在subdomain.example.com
上设置Cookie,您可以将Cookie附加到域的较短格式,但它必须是相同的基础域。
如果您需要其他网站设置一个不知道值的cookie,您必须以某种方式传递该值。使用带有查询字符串的重定向会使用户篡改,除非您对其进行加密签名(烦人)或通过可用于检索原始值的令牌。您可能需要一个短期商店,如Redis,Memcached,甚至是您可以在以后清除的数据库行。
如果可以在任何域上设置cookie,那就完全混乱了。出于某种原因,这些事情受到严格限制。