我有一个iOS应用程序,使用OAuth2在UIWebView
中验证Uber API。当升级到iOS 9时,我遇到了ATS阻止登录页面https请求的问题。然后我添加了Uber登录页面的例外,但注意到登录页面向Facebook、Amazon Web Services和其他网站发出了多个请求,所有这些请求都被ATS阻止。
我不想维护Uber登录页面的例外列表,因为Uber可以轻松更改其页面,而我的应用程序将没有正确的例外。所以我决定尝试一下SFSafariViewController
。
我能够使用SFSafariViewController
完成OAuth2流程,问题是完成身份验证时Uber存储了某种类型的cookie。如果我想验证不同的账户并再次弹出SFSafariViewController
,则会获取来自先前验证的cookie,并且没有机会验证不同的账户。我通过NSHTTPCookieStorage
从UIWebView
中删除cookie来解决此问题,但我没有看到从SFSafariViewController
中删除cookie的方法。