相关疑难解决方法(0)

在iOS应用程序中设计Facebook身份验证,该应用程序也可访问安全的Web服务

目标: 允许用户使用Facebook进行身份验证,进入需要访问我正在运行的受保护Web服务的iOS应用程序.

假设: 对于那些选择不使用Facebook登录的用户,有一个原生身份验证(和注册)系统.

细节:

  • 假设我们希望为用户提供登录Facebook的选项,而无需为我们的系统创建单独的帐户/凭证.
  • 因为我们支持我们自己的本机身份验证机制(用户名和密码),所以我们拥有自己的用户ID,并在初始凭据验证后发出用于后续交互的身份验证令牌.

我很惊讶Facebook在他们的开发者文档中没有这方面的最佳实践.所有现有文档要么假设您正在构建一个网站的FB auth,要么是一个没有需要身份验证的服务的独立移动应用程序.

这是我对如何设计这个问题的初步想法,但是想要验证它是否正确.

  1. 客户端弹出Facebook iOS登录
  2. UI用户使用Facebook凭据登录并获取访问令牌
  3. iOS App将访问令牌传递给我们的服务器
  4. 我们的服务器使用访问令牌与FB图形API进行通信,以(a)验证令牌和(b)获取该访问令牌的FB用户ID.

    例如,我们的服务器将调用https://graph.facebook.com/me/?access_token=XYZ,它将返回JSON对象中的配置文件信息

  5. 假设它有效,我们的服务器从JSON对象中提取用户ID并检查用户是否已经拥有一个帐户.如果是这样,我们会向客户端发出我们自己的身份验证票据以用于该会话.如果用户没有帐户,我们使用Facebook用户ID创建一个新帐户,分配我们自己的唯一用户ID并发出我们的身份验证票.

  6. 然后,客户端在后续需要身份验证的交互上传回auth票证.

这对我来说似乎是正确的方法,但不确定我是否遗漏了一些疯狂的基本内容并走错了(复杂的)路径.

facebook facebook-graph-api ios4 ios

397
推荐指数
3
解决办法
5万
查看次数

标签 统计

facebook ×1

facebook-graph-api ×1

ios ×1

ios4 ×1