我想知道 NSURLRequest
与 .returnCacheDataElseLoad
/.returnCacheDataDontLoad
缓存策略忽略基本授权。所以下面的场景不能正常工作:
总的来说,如果应用程序中的离线模式是通过 iOS 系统缓存实现的,则此错误允许任何人登录。
有人熟悉这个问题吗?它至少发生在 iOS 10 上。我正在寻找如何以温和的方式修复它。
最佳答案
这是预期的行为。 NSURLCache 缓存仅基于 URL 本身,而不是基于请求的任何其他方面。 IIRC,不考虑标题、POST 正文等。 (我可能会忘记一些未被忽略的部分,但无论哪种方式,凭据都是。)
如果您想让您的应用程序支持多个用户帐户对服务器端数据具有不同的 View ,您需要为每个用户使用单独的缓存,并且您需要以某种方式检查客户端的身份验证凭据。 (顺便说一句,这本身可能是一个错误,因为这意味着客户端和服务器在当前密码的概念方面可能会不同步。)
关于ios - (iOS 错误?)NSURLRequest 缓存的授权通过不正确的凭据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42923758/