【问题标题】:How to bypass Firebase Hosting's default Vary on Authorisation header如何绕过 Firebase 托管的默认 Vary on Authorization 标头
【发布时间】:2019-05-27 20:06:16
【问题描述】:

根据 Firebase Hosting 的文档: https://firebase.google.com/docs/hosting/functions#when_is_cached_content_served

Firebase 托管会自动确保在您的响应中针对常见情况设置适当的 Vary 标头。这包括确保您使用的任何会话 cookie 或授权标头都成为缓存键的一部分,从而防止内容意外泄漏。

Firebase 托管会自动将“授权”标头放入 Vary。

但是,某些 API 确实需要获取“授权”标头并确定是否需要在 Firebase 托管中缓存响应。

我可以知道如何使 Firebase 托管在授权标头上不发生变化吗?谢谢。

【问题讨论】:

  • 请详细解释您的问题。您需要单独的授权标头还是要删除可变标头
  • 谢谢@UmarHussain。我希望 Firebase 托管不要在“授权”标头上有所不同。不确定是否可行。
  • 我认为它仅由 Firebase 云功能放入响应标头中,其他服务不添加此标头。所以你必须检查你的 apis,而不是函数,如果它们设置了 Vary 标头。
  • 谢谢@UmarHussain。我也是这么想的,直到我阅读了我在问题中提到的文件。

标签: firebase firebase-hosting


【解决方案1】:

[注意,我是从事托管工作的 Firebaser]

对于通过 Firebase 托管连接的 Firebase 函数,您无法更改返回的默认 Vary 标头。如果函数向 Vary 标头添加其他值,这些值将被包含在内,但不能覆盖默认值。

[编辑想法...]

如果你真的不这样做,你可能(这是一个很大的可能,我还没有尝试过)能够直接调用函数的端点而不是通过托管。不希望 Vary 标头包含 Authorization。您将必须处理 CORS 和相关的事情,但您对它有更多的控制权。

因为托管的好处是它位于 CDN 后面,所以它需要一种良好(安全)的方式来缓存信息,Authorization 对此至关重要。如果你想自己处理一些,直接调用函数可能是最好的选择。

【讨论】:

  • 谢谢@bkend。我刚刚从 Slack 的 Bryan Kendall 那里得到了同样的答案。非常感谢。
  • 谢谢@bkend。关于您的建议,是的,这是可能的。但正如您所提到的,我们仍然希望利用 CDN。我想也许你们可以帮助突出显示文档中默认的 Vary 部分。我们在 StackDriver 中监控问题后才发现该行。非常感谢。
猜你喜欢
  • 1970-01-01
  • 2020-10-28
  • 1970-01-01
  • 2018-03-15
  • 1970-01-01
  • 2013-05-14
  • 1970-01-01
  • 1970-01-01
  • 2020-03-13
相关资源
最近更新 更多