我有一个iOS应用程序,允许用户使用Apple内置的帐户/社交框架通过Facebook登录。
我遇到的一个问题是,有没有办法将用户身份验证Cookie从ACAccountStore
传递到UIWebView
?
这意味着,如果用户点击链接并显示内置的Web视图页面,他们就可以评论/喜欢/ etc,而无需登录Web视图。
谢谢,
丹
答案 0 :(得分:2)
我认为,如果您无法控制要在所述网络视图中进行身份验证的服务,那将无法实现。
可以将任意Cookie注入UIWebView
,如图所示。在这里:Is it possible to set a cookie manually using sharedHTTPCookieStorage for a UIWebView?。
可以从ACAccountCredential
检索缓存的身份验证令牌。但OAuth令牌不是会话身份验证Cookie。
Facebook就是这么做的。每当在其iOS客户端中打开webview时,用户将在该webview中自动通过Facebook进行身份验证。但是他们可以控制自己的服务,因此他们为他们的iOS客户端创建了一种机制来请求会话验证cookie(然后将它们注入到webview中)。
一般而言,作为第三方开发者,您无法重现该行为。当然,除非服务具有满足其自身需求的机制,否则您需要进行逆向工程。