我们有一个正在开发中的PHP Web应用程序,尚不能公开访问(但),但是我们不想实现自定义解决方案来防止这种情况,因此我们求助于HTTP基本身份验证,该功能通常可以正常工作,但是在那里是iPhone用户的问题。
症状看起来与this article
中描述的完全一样用户获得提示,输入凭据,被授予对应用程序的访问权限。到目前为止,一切都很好。但是,当他尝试浏览该应用程序时,他再次得到提示。该应用程序通过443提供服务,确实涉及重定向。
这几乎与上述文章中描述的情况完全匹配。文章指出,该问题已在古老的Safari 6.0中得到解决,我们的用户正在使用最新的iOS和Safari。
这是怎么回事,在哪里看?我们认证不对吗?文章不正确吗?这是一个新错误吗?
答案 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'})
也许这也是您遇到的问题?