将Facebook用户链接到本地​​数据库中的用户

时间:2019-03-09 16:36:38

标签: facebook facebook-javascript-sdk

访问我的网站的用户可以使用其本地帐户或Facebook帐户登录。我的网站检查facebook登录状态,并从facebook接收以下信息:

  • accessToken-包含使用该应用程序的人的访问令牌。
  • expiresIn-表示令牌过期并需要更新的UNIX时间。
  • signedRequest-一个签名的参数,包含有关使用该应用程序的人的信息。
  • userID-使用该应用程序的人的ID。

我的服务器有一个数据库,其中包含这些用户的一些个人信息,facebook没有提供。 (Facebook与之无关)。

用户登录后,客户端应立即从我的服务器获取此信息。

onFacebookLogin(response) {
  const { accessToken, expiresIn, signedRequest, userID } = response;
  const userKey = ???? ;
  infoService.getInfo(userKey).then((info) => this.info = info);
}

很显然,我需要数据库中的密钥才能执行此提取:

  1. 该密钥应唯一标识用户
  2. 应该每隔x天更换一次永久,而不是一些临时令牌。
  3. 它应该是安全,从某种意义上说,它不能只是用户名。 (应该是其他人无法猜到的。)

accessTokenuserIDsignedRequest是否满足这些条件?还是应该使用其他方法(例如服务器端身份验证)?

(PS:它不在官方文档中。)

1 个答案:

答案 0 :(得分:1)

要识别回头用户,您需要使用userID。这将是唯一的,并且对于该特定应用程序将不会更改。

对于在不同应用之间映射用户:https://developers.facebook.com/docs/apps/for-business/