Safari 12取代了授权标头

Safari 12取代了授权标头,safari,authorization,basic-authentication,bearer-token,ios12,Safari,Authorization,Basic Authentication,Bearer Token,Ios12,我们有一个Web服务器(nginx),它受到基本身份验证的保护。API没有基本的身份验证 现在的问题是,自Safari 12(macOS&iOS)以来,javascript应用程序为/api请求设置的带有承载令牌的http头实际上没有发送到服务器,因为它被基本令牌替换。我可以在safari开发者工具的网络选项卡中看到这一点。如前所述,api是公共的,不受保护 例如,Chrome确实发送了正确的承载令牌,而不是基本令牌 当我删除nginx配置中的基本身份验证并重新启动safari时,一切正常,承载

我们有一个Web服务器(nginx),它受到基本身份验证的保护。API没有基本的身份验证

现在的问题是,自Safari 12(macOS&iOS)以来,javascript应用程序为/api请求设置的带有承载令牌的http头实际上没有发送到服务器,因为它被基本令牌替换。我可以在safari开发者工具的网络选项卡中看到这一点。如前所述,api是公共的,不受保护

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

当我删除nginx配置中的基本身份验证并重新启动safari时,一切正常,承载令牌被发送到api

似乎safari 12只是为域的每个请求自动发送基本令牌

有人知道这是safari中的一个bug吗?一种解决方案可能是将api目标从/api更改为单独的子域,如api.website.com


感谢您的帮助。

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

我可以确认这是Safari的问题,目前没有解决方案。

我们也得到了这个解决方案。@sven-w你找到解决方法了吗?或者您坚持添加子域了吗?我们现在使用自定义http头“x-auth-token”您找到解决此问题的方法了吗?从那时起,上述方法就适用于我们。