带有后端 REST 的移动应用程序的 Facebook 集成 API

Facebook integration for mobile app with a backend REST API

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

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

主要问题:谁负责 authenticating/authorizing Facebook、客户端或服务器?

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

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

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

你可以看看 Facebook SDK for Python, it should tell you how to incorporate it into your app and it shows how to integrate with a few frameworks here(Flask 与 django 类似)。

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

你应该选择选项 A。

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

如果您使用的是 django-rest-framework,您应该看看 django-rest-auth 包。它使用访问令牌在服务器端处理用户 login/creation。

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