将 facebook 用户链接到本地数据库中的用户
linking facebook users to users in a local database
访问我网站的用户可以使用他们的本地帐户登录,也可以使用他们的 facebook 帐户登录。我的网站检查 facebook 登录状态并从 facebook 接收以下信息:
accessToken
- 包含使用该应用程序的人的访问令牌。
expiresIn
- 表示token过期需要更新的UNIX时间。
signedRequest
- 一个签名参数,其中包含有关使用应用程序的人的信息。
userID
- 使用应用程序的人的 ID。
我的服务器有一个数据库,其中包含这些用户的一些个人信息,Facebook 没有提供这些信息。 (Facebook 与它无关)。
用户登录后,客户端应立即从我的服务器获取此信息。
onFacebookLogin(response) {
const { accessToken, expiresIn, signedRequest, userID } = response;
const userKey = ???? ;
infoService.getInfo(userKey).then((info) => this.info = info);
}
显然,我的数据库中需要一个密钥来执行此提取:
- 这个键应该唯一地识别用户。
- 它应该是永久的,而不是每 x 天更改一次的临时令牌。
- 它应该是 secure,因为它不能只是一个用户名。 (应该是别人猜不到的吧。)
accessToken
、userID
或 signedRequest
是否满足这些条件?或者我应该使用不同的方法(例如服务器端身份验证)?
(PS:官方文档中没有。)
要识别回访用户,您需要使用 userID
。它将是独一无二的,并且不会针对该特定 App 进行更改。
用于跨不同应用映射用户:https://developers.facebook.com/docs/apps/for-business/
访问我网站的用户可以使用他们的本地帐户登录,也可以使用他们的 facebook 帐户登录。我的网站检查 facebook 登录状态并从 facebook 接收以下信息:
accessToken
- 包含使用该应用程序的人的访问令牌。expiresIn
- 表示token过期需要更新的UNIX时间。signedRequest
- 一个签名参数,其中包含有关使用应用程序的人的信息。userID
- 使用应用程序的人的 ID。
我的服务器有一个数据库,其中包含这些用户的一些个人信息,Facebook 没有提供这些信息。 (Facebook 与它无关)。
用户登录后,客户端应立即从我的服务器获取此信息。
onFacebookLogin(response) {
const { accessToken, expiresIn, signedRequest, userID } = response;
const userKey = ???? ;
infoService.getInfo(userKey).then((info) => this.info = info);
}
显然,我的数据库中需要一个密钥来执行此提取:
- 这个键应该唯一地识别用户。
- 它应该是永久的,而不是每 x 天更改一次的临时令牌。
- 它应该是 secure,因为它不能只是一个用户名。 (应该是别人猜不到的吧。)
accessToken
、userID
或 signedRequest
是否满足这些条件?或者我应该使用不同的方法(例如服务器端身份验证)?
(PS:官方文档中没有。)
要识别回访用户,您需要使用 userID
。它将是独一无二的,并且不会针对该特定 App 进行更改。
用于跨不同应用映射用户:https://developers.facebook.com/docs/apps/for-business/