当用户点击我们网站上的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身份验证成功返回时,我们的用户也会登录我们的系统。
非常感谢!
答案 0 :(得分:0)
如果您使用的是Facebook iOS SDK,则SSO(单点登录)工作流程更像是Javascript SDK的工作流程,因为用户会看到类似于JS SDK的弹出窗口:以UIWebView,Safari浏览器或Facebook应用程序的形式(取决于用户的设置)。
iOS SDK最引人注目的功能之一是单点登录 (SSO)。 SSO允许用户使用Facebook登录您的应用 身份。如果他们已经登录Facebook iOS应用程序 他们的设备,他们不必输入用户名和密码。 此外,您可以获得用户访问权限的权限 Facebook个人资料信息和社交图谱。
SSO主要通过将用户重定向到他们的Facebook应用程序来工作 设备。由于用户已经登录Facebook,他们不会 需要输入用户名和密码才能识别自己。他们 将看到具有您的应用所要求的权限的Auth Dialog for,并将被重定向到适当的移动应用程序 的access_token。
开发人员应该意识到Facebook SSO的行为会略有不同 根据用户设备上安装的内容而有所不同。这是 在某些iOS配置中会发生什么:
如果应用程序在支持多任务处理的iOS版本中运行, 如果该设备具有3.2.3或更高版本的Facebook应用程序 安装后,SDK会尝试在其中打开Auth Dialog Facebook应用程序用户授予或拒绝后,Facebook应用程序 重定向回调用应用程序,传递访问令牌, 到期,以及Facebook OAuth服务器可能的任何其他参数 返回。
如果应用程序在支持多任务处理的iOS版本中运行, 但该设备没有3.2.3或更高版本的Facebook应用程序 安装得越大,SDK将在Safari中打开Auth Dialog 移动浏览器。用户授予或撤销授权后, Safari重定向回调用应用程序。类似于Facebook应用程序 基于授权,这允许多个应用程序共享相同的 Facebook用户access_token通过Safari cookie。
如果应用程序在不支持的iOS版本中运行 多任务处理,SDK使用弹出内联的旧机制 UIWebView,提示用户登录Facebook并授予访问权限。 FBSessionDelegate是您的应用应该的回调接口 实现:在应用程序时将调用委托方法 成功登录或注销。阅读iOS SDK文档 关于这个代表的更多细节。
...当用户完成登录或未登录并从“弹出窗口”返回您的应用时,您的应用必须根据用户是否登录/授权应用来决定做什么(并收到有效的访问令牌。
请阅读此内容以获取更多信息: https://developers.facebook.com/docs/mobile/ios/build/#implementsso