【问题标题】:can I pass headers to redirected location after redirection?重定向后我可以将标头传递到重定向位置吗?
【发布时间】:2017-07-01 03:35:16
【问题描述】:

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

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

我可以看到它正确重定向到 302。但是 cookie 没有在 &lt;target-domain&gt; 上设置

看起来标头"Set-Cookie": "username=user1;" 没有在重定向时传递给&lt;target-domain&gt;

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

  1. 重定向端点响应状态码 302。我在响应标头中看到 LocationSet-Cookie
  2. 目标域响应状态码 200。我不再看到 LocationSet-Cookie

有没有办法在&lt;target-domain&gt; 上设置 cookie?

【问题讨论】:

    标签: redirect cookies


    【解决方案1】:

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

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

    如果可以在任何域上设置 cookie,那将是一团糟。这些事情受到严格限制是有原因的。

    【讨论】:

      猜你喜欢
      • 2016-04-14
      • 2014-01-10
      • 1970-01-01
      • 1970-01-01
      • 2016-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-21
      相关资源
      最近更新 更多