dun*_*nc4 19 oauth ios uber-api ios9
我有一个iOS应用程序,使用OAuth2在Uber API中进行身份验证UIWebView.升级到iOS 9时,我遇到了ATS阻止登录页面的https请求的问题.然后我为优步登录页面添加了一个例外,但随后注意到登录页面向Facebook,亚马逊网络服务和其他网站发出了几个其他请求,这些请求都被ATS阻止.
我不想维护优步登录页面的例外列表,因为优步可以轻松更改其页面,我的应用程序将没有正确的例外.所以我决定SFSafariViewController试一试.
我能够完成OAuth2进程SFSafariViewController,问题是当身份验证完成时,Uber会存储某种类型的cookie.如果我想验证其他帐户并SFSafariViewController再次启动,则会从之前的身份验证中获取Cookie,并且无法对其他帐户进行身份验证.我UIWebView通过删除cookie来解决这个问题NSHTTPCookieStorage,但我没有看到从中删除cookie的方法SFSafariViewController.
对于 iOS 9 及更高版本,最佳选择是使用WebKit 框架中可用的WKWebView类
它提供了一个WKWebsiteDataStore,可用于删除 webview 使用的 cookie/缓存,例如参见:https : //stackoverflow.com/a/31803708/313113或/sf/answers/2274389001/
根据文档:SFSafariViewController与 Safari 共享 cookie 和其他网站数据,因为它在您的应用程序进程之外运行(出于安全原因),您无法从应用程序内部修改它的状态。请参阅此答案:https : //stackoverflow.com/a/34136074/313113来自联系 Apple 客户支持并得到以下回复的人:
SFSafariViewController 在我的应用程序进程之外运行,为了确保安全,我的应用程序不能修改 SFSafariViewController 的状态。换句话说,我的应用程序无法清除 SFSafariViewController 存储的凭据。
| 归档时间: |
|
| 查看次数: |
6016 次 |
| 最近记录: |