我正在开发一个登录 HTTPS 网站的应用。身份验证后,网站会发送一个标记为“安全”的最终Cookie。
当我将defaultSessionConfiguration()
用于NSURLSession()
时,该应用有效。
当我在应用中更改一行以使用backgroundSessionConfigurationWithIdentifier()
时,我无法继续验证阶段。我的网页显示我已通过身份验证,但后续请求会返回登录页面。
"认证成功的cookie"在共享cookie存储中不存在。
此Cookie是网站标记为" Secure"的唯一Cookie。请注意,此HTTPS网站通过HTTPS完成所有交易。
TL; DR NSURLSession后台会话与默认会话的不同之处在于丢失安全cookie吗?
编辑:我已经完成了更多的工作。
使用NSURLSession
backgroundSessionConfiguration
重定向时,它似乎会忽略在重定向标头中发送的Cookie? (我认为cookie是"安全"可能并不重要。)
指定defaultSessionConfiguration
时,重定向正常工作。
答案 0 :(得分:0)
事实证明这是一个已知的错误。 Apple r。 16852027
已知backgroundSession会忽略重定向上的新Cookie。解决方案是使用defaultSession获取cookie,然后继续使用backgroundSession。