Facebook iOS SDK 和基于 Safari 的身份验证问题

Posted

技术标签:

【中文标题】Facebook iOS SDK 和基于 Safari 的身份验证问题【英文标题】:Facebook iOS SDK and Safari based authentication issue 【发布时间】:2012-11-29 22:48:45 【问题描述】:

我在我的 ios 应用程序中使用了最新的 FB SKD,因此用户可以使用 facebook 帐户登录。应用程序打开 FB 应用程序并完美地回到我的应用程序。但是,在应用程序的某些地方,我必须显示/拉一些人的 Facebook 页面(使用 WebView 基于 safari),但即使用户已经使用 Facebook 帐户登录到我的原生 ios 应用程序,但页面仍然要求用户登录当他们再次点击登录时,它会向他们显示烦人的 FB 用户名/密码页面。 无论如何,基于 FB safari 的页面可以对用户进行身份验证,因为它已经使用 FB 集成登录到我的应用程序?我是否必须包括查询或其他内容。请告诉我如何解决这个问题的详细信息,因为我是这个新手.. 再次感谢您的帮助...

图片:https://www.dropbox.com/s/rjlptu7ufpcq3vl/fb.png

【问题讨论】:

【参考方案1】:

当用户切换到 Facebook 应用进行身份验证时,它不会为您的 UIWebView 创建 cookie,这就是它要求再次登录的原因。让用户在 UIWebView 内进行身份验证,而无需切换到 Facebook 应用程序。

【讨论】:

感谢您的回复。但我不希望用户“再次”认证。他们在登录应用程序时已经这样做了。您的意思是有一种方法可以为 UIWebView 创建 cookie 并在开始时使用 FB SDK 将其传递给 safari?你能告诉我更多细节吗?【参考方案2】:

您所说的内容听起来与 Facebook 对话不知道当前 Facebook 会话的情况类似。

如果您通过 Facebook 验证您的用户,请尝试将 Facebook 对象本身作为内存中某处的实例变量,以便您可以再次访问它(也许是单例控制器上的一个属性?)。

如果您有 [FBSession activeSession],则从经过身份验证的 Facebook 对象生成对话框似乎可以让他们使用对话框而无需重新进行身份验证。因此,您还必须保持活跃的 FB 会话。但我不确定这种解决方案是否有效,因为您没有显示具体代码来说明您如何进行基于 Web 的 FB 获取。

这个问题也可能有帮助:

Implement Login with Facebook in iOS 5 and 6

【讨论】:

以上是关于Facebook iOS SDK 和基于 Safari 的身份验证问题的主要内容,如果未能解决你的问题,请参考以下文章

FBSession 的 Facebook iOS SDK 3.0 登录教程问题

Facebook iOS SDK 和护照-facebook 身份验证

同一应用中不同版本的 Facebook iOS SDK 和 Audience Network iOS SDK

XCode 和 Facebook IOS SDK - 说明不正确

Facebook SDK 错误 Domain=com.facebook.sdk Code=5 在 ios 中获取好友列表时

ParseFacebookUtilsV4 和 Facebook-iOS-SDK 4.0