Safari 12取代了授权标头

时间:2018-09-22 11:58:45

标签: safari authorization basic-authentication bearer-token ios12

我们有一个网络服务器(nginx)https://www.website.com,该服务器受到基本身份验证的保护。 API https://www.website.com/api没有基本身份验证!

现在的问题是,自Safari 12(macOS和iOS)以来,由我们的javascript应用程序设置的带有针对/ api请求的Bearer令牌的http标头实际上并未发送到服务器,因为它已被基本令牌替换。我可以在safari开发人员工具的“网络”标签中看到这一点。如前所述,/ api是公共的,不受保护!

Chrome,例如确实发送了正确的Bearer令牌,而不是基本令牌。

当我在nginx配置中删除基本身份验证并重新启动safari时,一切正常,并且Bearer令牌已发送到api。

Safari 12似乎会随着对域的每次请求自动发送基本令牌。

有人知道这是否是野生动物园的错误吗?一种解决方案可能是将api目标从/ api更改为单独的子域,例如api.website.com。

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

我可以告诉您,您提出的“ api.website.com”解决方案也遇到了同样的问题。 Safari似乎并不关心子域。似乎只在乎域。

答案 1 :(得分:0)

我可以确认这是 Safari 的问题,我现在找不到解决方案