带有后端 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 进行身份验证。
附加说明(可能相关或不相关):
- 我正在使用 Django 开发 REST API 部分。
- 该应用程序需要访问用户的 Facebook 好友,以便我们可以邀请他们使用该应用程序。
你可以看看 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
我们正在构建需要 REST API 后端并与 Facebook 集成以进行身份验证的移动应用程序(iOS 和 Android)。
我仍然对这种用例的最佳架构设计感到困惑。
主要问题:谁负责 authenticating/authorizing Facebook、客户端或服务器?
选项 A: 客户端向 FB 进行身份验证。客户端使用从 Facebook 收到的令牌发送请求。服务器使用该令牌来识别用户。
选项 B: 服务器代表客户端向 FB 进行身份验证。
附加说明(可能相关或不相关):
- 我正在使用 Django 开发 REST API 部分。
- 该应用程序需要访问用户的 Facebook 好友,以便我们可以邀请他们使用该应用程序。
你可以看看 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