2

当用户点击我们网站上的使用 Facebook 登录按钮时,我们调用:

https://www.facebook.com/dialog/oauth?client_id=xxxxxxx&
redirect_uri=http://xxxxx.com/Account/FBLogin&scope=email,publish_stream 

在我们的 FBLogin(字符串代码)方法中,我们做了两件事。首先我们调用:

"https://graph.facebook.com/oauth/access_token?client_id=xxxxxxxxx&
redirect_uri=http://xxxxxx.com/Account/FBLogin&client_secret=xxxxxxxxxxxxx&code=" + code;

然后,如果 FaceBook 登录成功,我们将用户登录到我们的站点。

iOS 中这个工作流程的等价物是什么?我们基本上想在我们的服务器上对用户进行身份验证,作为 Facebook 身份验证的一部分。因此,当 Facebook 身份验证成功返回时,我们的用户也已登录到我们的系统。

非常感谢!

4

1 回答 1

0

如果您使用的是 Facebook iOS SDK,SSO(单点登录)工作流程更像是 Javascript SDK 的工作流程,因为用户会看到类似于 JS SDK 的弹出窗口:或者以 UIWebView、Safari 浏览器的形式,或 Facebook 应用程序(取决于用户的设置)。

iOS SDK 最引人注目的功能之一是单点登录 (SSO)。SSO 允许用户使用他们的 Facebook 身份登录您的应用程序。如果他们已在其设备上登录 Facebook iOS 应用程序,则无需输入用户名和密码。此外,您可以从用户那里获得访问其 Facebook 个人资料信息和社交图谱的权限。

SSO 主要通过将用户重定向到其设备上的 Facebook 应用程序来工作。由于用户已经登录 Facebook,他们无需输入用户名和密码来识别自己。他们将看到具有您的应用程序要求的权限的身份验证对话框,并将使用适当的 access_token 重定向到您的移动应用程序。

开发人员应注意,Facebook SSO 的行为会因用户设备上安装的内容而略有不同。这是在某些 iOS 配置中发生的情况:

  • 如果应用程序在支持多任务处理的 iOS 版本中运行,并且设备安装了 3.2.3 或更高版本的 Facebook 应用程序,则 SDK 会尝试在 Facebook 应用程序中打开身份验证对话框。在用户同意或拒绝后,Facebook 应用程序重定向回调用应用程序,并传递访问令牌、过期时间和 Facebook OAuth 服务器可能返回的任何其他参数。

  • 如果应用在支持多任务处理的 iOS 版本中运行,但设备未安装 3.2.3 或更高版本的 Facebook 应用,SDK 将在 Safari 移动浏览器中打开 Auth Dialog。在用户授予或撤销授权后,Safari 将重定向回调用应用程序。类似于基于 Facebook 应用的授权,这允许多个应用通过 Safari cookie 共享同一个 Facebook 用户 access_token。

  • 如果应用在不支持多任务处理的 iOS 版本中运行,SDK 使用旧机制弹出内联 UIWebView,提示用户登录 Facebook 并授予访问权限。FBSessionDelegate 是您的应用程序应实现的回调接口:当应用程序成功登录或注销时,将调用委托方法。有关此委托的更多详细信息,请阅读 iOS SDK 文档。

...当用户完成登录或未登录并从“弹出窗口”返回您的应用程序时,您的应用程序必须根据用户是否登录/授权应用程序(以及有效的收到访问令牌)。

请阅读此内容以获取更多信息: https ://developers.facebook.com/docs/mobile/ios/build/#implementsso

于 2012-08-11T01:06:36.190 回答