【问题标题】:Facebook integration for mobile app with a backend REST APIFacebook 与后端 REST API 的移动应用程序集成
【发布时间】:2016-02-16 02:41:39
【问题描述】:

我们正在构建需要 REST API 后端并与 Facebook 集成以进行身份​​验证的移动应用程序(iOS 和 Android)。

我仍然对这种用例的最佳架构设计感到困惑。

主要问题:谁负责对 Facebook、客户端或服务器进行身份验证/授权?

选项 A: 客户端向 FB 进行身份验证。客户端使用从 Facebook 收到的令牌发送请求。服务器使用该令牌来识别用户。

选项 B:服务器代表客户端向 FB 进行身份验证。

附加说明(可能相关或不相关):

  • 我正在使用 Django 开发 REST API 部分。
  • 该应用需要访问用户的 Facebook 好友,以便我们可以邀请他们使用该应用。

【问题讨论】:

  • 你的rest api也支持邮箱登录吗?您还希望通过 facebook 实现哪些其他选项(获取用户的朋友列表等)?
  • @MuchOverflow 目前,登录将仅限于 Facebook。我们还需要将内容分享给用户的 Facebook 好友。
  • stackoverflow.com/a/27295322/165106 很好地解释了为什么选项 B 更好

标签: android ios django facebook


【解决方案1】:

你应该选择选项 A。

  • 与客户端进行身份验证。然后您将收到一个访问令牌。
  • 将此令牌发送到服务器。
  • 现在您可以创建用户、获取 FB 好友以及您可能需要的所有其他操作。

如果你使用 django-rest-framework,你应该看看 django-rest-auth 包。它使用访问令牌在服务器端处理用户登录/创建。

https://django-rest-auth.readthedocs.org/en/latest/installation.html#social-authentication-optional

【讨论】:

    【解决方案2】:

    您可以查看Facebook SDK for Python,它应该会告诉您如何将其合并到您的应用程序中,并显示如何与一些框架集成here(Flask 类似于 django)。

    虽然您可能希望将用户的令牌存储在数据库中,但 Facebook 将在他们这边进行身份验证,而不是您。

    【讨论】:

    • 如果我在服务器端执行,那么服务器需要询问用户的 Facebook 凭据,对吗?然后发给FB进行认证。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多