基本身份验证在Safari中不起作用

时间:2019-11-14 11:51:07

标签: safari mobile-safari basic-authentication

我们有一个正在开发中的PHP Web应用程序,尚不能公开访问(但),但是我们不想实现自定义解决方案来防止这种情况,因此我们求助于HTTP基本身份验证,该功能通常可以正常工作,但是在那里是iPhone用户的问题。

症状看起来与this article

中描述的完全一样

用户获得提示,输入凭据,被授予对应用程序的访问权限。到目前为止,一切都很好。但是,当他尝试浏览该应用程序时,他再次得到提示。该应用程序通过443提供服务​​,确实涉及重定向。

这几乎与上述文章中描述的情况完全匹配。文章指出,该问题已在古老的Safari 6.0中得到解决,我们的用户正在使用最新的iOS和Safari。

这是怎么回事,在哪里看?我们认证不对吗?文章不正确吗?这是一个新错误吗?

1 个答案:

答案 0 :(得分:0)

我只是花了太多时间。

iPhone上的Safari似乎应用了更严格的安全策略。因此,默认情况下,它不会通过CSS,脚本或Ajax请求发送基本身份验证凭据。因此,对于这些请求,Safari会一次又一次提示您进行基本身份验证。

对于CSS和脚本,您可以:

<link rel="stylesheet" href="..." crossorigin="use-credentials" />
<script src="..." crossorigin="use-credentials" />

对于ajax请求,应该有一个发送凭据的选项,具体取决于您发送请求的方式,例如:

fetch('/path/to/json', {credentials: 'include'})

也许这也是您遇到的问题?