我们正在构建需要 REST API 后端并与 Facebook 集成以进行身份验证的移动应用程序(iOS 和 Android)。
我仍然对这种用例的最佳架构设计感到困惑。
主要问题:谁负责通过 Facebook、客户端或服务器进行身份验证/授权?
选项 A: 客户端向 FB 进行身份验证。客户端使用从 Facebook 收到的 token 发送请求。服务器使用该 token 来识别用户。
选项 B:服务器代表客户端向 FB 进行身份验证。
附加说明(可能相关或不相关):
- 我正在使用 Django 开发 REST API 部分。
- 该应用需要访问用户的 Facebook 好友,以便我们可以邀请他们使用该应用。
最佳答案
你应该选择选项 A。
- 与客户进行身份验证。然后您将收到一个访问 token 。
- 将此 token 发送到服务器。
- 现在您可以创建用户、获取 FB 好友以及您可能需要的所有其他内容。
如果你正在使用 django-rest-framework,你应该看看 django-rest-auth 包。它使用访问 token 在服务器端处理用户登录/创建。
https://django-rest-auth.readthedocs.org/en/latest/installation.html#social-authentication-optional
关于android - 带有后端 REST API 的移动应用程序的 Facebook 集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35422727/