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

问题描述 投票:0回答:1

访问我网站的用户可以使用他们的本地帐户或他们的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:它不在官方文档中。)

facebook facebook-javascript-sdk
1个回答
1
投票

要识别返回的用户,您需要使用userID。它将是唯一的,并且不会针对该特定应用程序进行更改。

用于跨不同应用程序映射用户:https://developers.facebook.com/docs/apps/for-business/

© www.soinside.com 2019 - 2024. All rights reserved.