如何为移动应用程序实现安全的Facebook登录/注册/连接Web服务?

use*_*048 11 language-agnostic authentication api rest facebook

我有一个用于移动应用程序的Web REST API,它支持使用用户/密码和令牌身份验证的经典注册/登录.

由于注册没有电子邮件确认,我如何实现安全注册/登录/连接Facebook服务?

我的第一个办法:我是从移动应用获取facebook_id,facebook_email,facebook_name:

  • 通过Facebook搜索用户,如果存在完美返回该用户,否则用这些参数创建新用户

  • 问题:我认为facebook_id任何其他应用程序都可以轻松找到它...所以没有什么能阻止我假设我是别人并用他的facebook_id登录

  • 可能的解决方案:access_token从移动应用程序获取也是如此,并在服务器端检查access_tokenfacebook_email收到的相关的是否正确

另一个问题可能是:

  • A人正在创建一个包含personB@fake.com电子邮件的经典帐户
  • 一周之后,B人连接它的Facebook帐户(使用相同的personB@fake.com电子邮件).第一个想法是将clasic帐户与此facebook帐户相关联.但是,B人将接管A人的账户.

可选:对于移动应用程序上的令牌过期,最佳做法是什么?我已经阅读了大约2个小时的内容,但是facebook在我认为半年后仍然可以使用应用程序.

为了确保安全性,让我们假设我可以从我的网络服务中的客户端获得任何重要的东西(access_token,email,...):在这种情况下,确保最佳安全性的最佳做法是什么:甚至client-side规则:是否应该有2个不同的登录和SignUp的服务?无论如何,快速的guildeline /逐步流程将是完美的.

Jac*_*ens 1

您检查过Facebook 开发者登录文档吗?它们涵盖登录流程以及生成用户和应用程序令牌(通过调用适用于 JavaScript 的 FB SDK ( FB.GetAuthResponse),在这种情况下,AuthResponse 包含一个 userID 参数,您可以将应用程序的 ID 映射到该参数)。令牌过期也由 FB SDK 处理。Android 登录流程看起来相当简单,iOS 登录流程看起来更简单。

  • 这不是关于如何使用 facebook API.. 而是如何构建我的 Web 服务来处理所有用例(主要是问题中列出的用例) (7认同)