我可以在重定向后将标头传递到重定向位置吗?

时间:2017-06-30 19:31:17

标签: redirect cookies

这是我的重定向端点的响应头,状态码为302。

"Location": "http://<target-domain>",
"Set-Cookie": "username=user1;"

我可以看到它正确地重定向到302.但是没有在<target-domain>上设置cookie

看起来标题"Set-Cookie": "username=user1;"在重定向时未传递给<target-domain>

我在我的开发工具中看到了2个网络活动,

  1. 重定向端点以状态码302响应。我在响应标头中看到LocationSet-Cookie
  2. 目标域以状态码200响应。我再也看不到LocationSet-Cookie
  3. 有没有办法在<target-domain>上设置Cookie?

1 个答案:

答案 0 :(得分:1)

您不能在您所在域以外的域上设置Cookie,所以基本上没有。唯一的例外是,如果您当前的域名类似于example.com,您可以在subdomain.example.com上设置Cookie,您可以将Cookie附加到域的较短格式,但它必须是相同的基础域。

如果您需要其他网站设置一个不知道值的cookie,您必须以某种方式传递该值。使用带有查询字符串的重定向会使用户篡改,除非您对其进行加密签名(烦人)或通过可用于检索原始值的令牌。您可能需要一个短期商店,如Redis,Memcached,甚至是您可以在以后清除的数据库行。

如果可以在任何域上设置cookie,那就完全混乱了。出于某种原因,这些事情受到严格限制。