将cookie传递给UIWebView - iOS

时间:2015-11-26 20:59:56

标签: ios objective-c facebook-graph-api acaccountstore nshttpcookie

我有一个iOS应用程序,允许用户使用Apple内置的帐户/社交框架通过Facebook登录。

我遇到的一个问题是,有没有办法将用户身份验证Cookie从ACAccountStore传递到UIWebView

这意味着,如果用户点击链接并显示内置的Web视图页面,他们就可以评论/喜欢/ etc,而无需登录Web视图。

谢谢,

1 个答案:

答案 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中)。

一般而言,作为第三方开发者,您无法重现该行为。当然,除非服务具有满足其自身需求的机制,否则您需要进行逆向工程。