在单个设备上为多个用户自动重新授权Facebook

时间:2012-02-08 10:19:20

标签: iphone ios facebook oauth single-sign-on

我们正在构建一个需要Facebook注册的iPhone应用程序。我们想在用户创建帐户后做两件事,然后退出我们的应用程序。我们正在四个主要假设的约束下工作。

一个。用户已经注册并且他们的FB令牌存储在设备上

B中。可能有多个用户从单个设备注册或登录。在这种情况下,可以存储多个令牌。

℃。目前没有用户登录我们的应用

d。目前还不清楚哪个用户登录Facebook应用程序

有了这些假设,我们有两个问题:

  1. 我们如何将正确存储的令牌与当前在设备上登录Facebook的人匹配?

  2. 我们如何跳过提示“你已经授权......”,在返回应用之前需要“好”?

  3. 非常感谢代码示例。

1 个答案:

答案 0 :(得分:0)

因此,如果我理解正确,您只想在您的单个设备上实现多Facebook用户,并且能够在不重新验证的情况下进行交换?

以下是我认为你可以遵循的步骤:

  1. 用户登录
  2. 将他们的profile_pic + facebook uid + access_token +名称存储在某种持久性存储中,您只需将其存储在NSUserDefaults中,但有多种方法可以使用更安全的Keychain存储来访问access_token here
  3. 将此组键/值对设置为“有效”
  4. 当用户退出时,该应用实际上并未将用户退出Facebook,而只是清除活动的键/值对
  5. 通过回读您存储的值(姓名+个人资料照片)
  6. 显示登录的用户
  7. 用户点按一个配置文件,将其设置为活动状态或验证新配置文件并重复步骤
  8. 重要提示:您现在必须非常小心,因为传统上可以获得具有offline_access权限的非过期访问令牌。但是starting July 2012,这已被弃用且令牌到期。因此,每次选择用户个人资料时都需要extend the token