在后台 NSURLSession 为什么安全 cookie 丢失?
In background NSURLSession why are secure cookies lost?
我正在开发一个可以登录 HTTPS 网站的应用程序。身份验证后,网站会发送一个标记为 'Secure' 的最终 cookie。
当我将 defaultSessionConfiguration()
用于 NSURLSession()
时,该应用程序可以运行。
当我在应用程序中更改一行以使用 backgroundSessionConfigurationWithIdentifier()
时,我无法继续通过身份验证阶段。我确实收到一个显示我已通过身份验证的网页,但随后请求 return 登录页面。
"authentication successful cookie" 似乎不存在于共享 cookie 存储中。
此 cookie 是网站标记为 "Secure" 的唯一 cookie。请注意,此 HTTPS 网站通过 HTTPS 进行所有交易。
TL;DR
NSURLSession 后台 session 与默认 session 丢失安全 cookie 有何不同?
编辑:我做了更多工作。
当 NSURLSession
使用 backgroundSessionConfiguration
重定向 时,它似乎忽略了在重定向的 Header 中发送的 cookie? (我认为 cookie "Secure" 可能并不重要。)
指定 defaultSessionConfiguration
时重定向工作正常。
原来这是一个已知的bug。苹果河16,852,027.
已知 backgroundSession 会在重定向时忽略新的 cookie。解决方案是使用 defaultSession 获取 cookie,然后继续使用 backgroundSession。
我正在开发一个可以登录 HTTPS 网站的应用程序。身份验证后,网站会发送一个标记为 'Secure' 的最终 cookie。
当我将 defaultSessionConfiguration()
用于 NSURLSession()
时,该应用程序可以运行。
当我在应用程序中更改一行以使用 backgroundSessionConfigurationWithIdentifier()
时,我无法继续通过身份验证阶段。我确实收到一个显示我已通过身份验证的网页,但随后请求 return 登录页面。
"authentication successful cookie" 似乎不存在于共享 cookie 存储中。
此 cookie 是网站标记为 "Secure" 的唯一 cookie。请注意,此 HTTPS 网站通过 HTTPS 进行所有交易。
TL;DR NSURLSession 后台 session 与默认 session 丢失安全 cookie 有何不同?
编辑:我做了更多工作。
当 NSURLSession
使用 backgroundSessionConfiguration
重定向 时,它似乎忽略了在重定向的 Header 中发送的 cookie? (我认为 cookie "Secure" 可能并不重要。)
指定 defaultSessionConfiguration
时重定向工作正常。
原来这是一个已知的bug。苹果河16,852,027.
已知 backgroundSession 会在重定向时忽略新的 cookie。解决方案是使用 defaultSession 获取 cookie,然后继续使用 backgroundSession。