Safari 12 替换授权标头
Posted
技术标签:
【中文标题】Safari 12 替换授权标头【英文标题】:Safari 12 replaces authorization header 【发布时间】:2019-02-26 14:47:26 【问题描述】:我们有一个受基本身份验证保护的网络服务器 (nginx) https://www.website.com。 API https://www.website.com/api 没有基本认证!
现在的问题是,从 Safari 12(macOS 和 ios)开始,我们的 javascript 应用程序为 /api 请求设置的带有 Bearer 令牌的 http 标头实际上并没有发送到服务器,因为它被替换为基本令牌。我可以在 Safari 开发人员工具的网络选项卡中看到这一点。如前所述,/api 是公开的,不受保护!
Chrome 例如确实发送了正确的 Bearer 令牌而不是 Basic 令牌。
当我删除 nginx 配置中的基本身份验证并重新启动 safari 时,一切正常,并且 Bearer 令牌被发送到 api。
似乎 safari 12 只是为域的每个请求自动发送基本令牌。
有人知道这是否是 safari 中的错误吗?一种解决方案可能是我们将 api 目标从 /api 更改为单独的子域,例如 api.website.com。
感谢您的帮助。
【问题讨论】:
我们也得到了这个。 @sven-w 你有没有找到解决这个问题的方法?还是您坚持添加子域? 我们现在正在使用自定义 http 标头 'x-auth-token' 你找到解决这个问题的办法了吗? 从那时起,上述解决方案对我们有效。 【参考方案1】:我可以告诉您,您提出的“api.website.com”解决方案存在同样的问题。 Safari 似乎并不关心子域。它似乎只关心域。
【讨论】:
【参考方案2】:我可以确认这是 Safari 的问题,我现在找不到解决方案
【讨论】:
以上是关于Safari 12 替换授权标头的主要内容,如果未能解决你的问题,请参考以下文章
iPhone/iPad Safari 是不是需要视频的“Accept-Ranges”标头?
由于浏览器设置的标头,Safari 拒绝重定向 CORS 请求