使用Facebook OAuth保护REST API

Vit*_*biy 20 api rest web-services

我正在构建一个app/API,允许用户使用Facebook,Twitter或Google登录.我想知道允许这些用户使用同一帐户登录API的最佳做法是什么.

  1. 我所拥有的一些想法是将头中的auth令牌/ cookie传递给每个请求的API,并使用它在后端进行身份验证.
  2. 运行我自己的OAuth设置,并让用户通过后端进行一次身份验证,以获取我的OAuth令牌,然后使用这些令牌.

Jer*_*sen 1

我正在做同样的事情,我的解决方案是匹配您从这些各自的 API 获得的电子邮件地址。

对于 Facebook,您需要获得最终用户的特殊许可才能在其中注册电子邮件地址。&scope=email您可以通过添加到第一个 oauth 请求来完成此操作。

缺点是您需要从最终用户那里获得此许可,他们可能会拒绝。另一个缺点是用户需要对 Google、Facebook 和 Twitter 使用相同的电子邮件地址。

一个优点是用户记录会自动合并,因此如果用户第一次通过 Google 登录,第二次通过 Facebook 登录,则可以直接访问所有数据。

另一种方法是手动合并他们的数据,让他们在已经通过 Facebook 登录的情况下登录 Google。然后您可以断定他们是同一用户,即使他们使用不同的电子邮件地址。但这是一种更乏味的方法,因为您仍然需要合并两个帐户中应用程序的用户数据。