1

使用 Javascript API 登录时,它会返回带有许多参数的页面,例如访问令牌、用户 ID 和其他详细信息。如果我想将我的数据库中的一个用户与这个 Facebook 用户相关联,那将是我想要存储的数据片段以便以后能够查找它以进行身份​​验证?

换句话说,我应该存储哪个令牌,以便下次用户登录时,我可以在数据库中查找此令牌并对用户进行身份验证?

我会使用 UID,但欺骗另一个 UID 并冒充其他人似乎很容易。

谢谢!

4

2 回答 2

1

客户端欺骗不是您关心的问题。如果您基于 FB 身份验证显示 FB 内容,则 FB 负责该过程的完整性。

如果您使用此信息服务器端,那么您需要遵循不可欺骗的 OAuth 2.0 流程(据我所知),因为您将直接前往 FB 进行身份验证。

你不能混合这两种流程,因为你让自己容易受到攻击。

要回答您的另一个问题,是的,您应该将您的数据库链接到 UID,因为 access_token 会改变。

于 2011-05-27T23:25:00.840 回答
0

您可以使用 fb js sdk 验证 fb 访问令牌。所以你可以把 fb-uid 作为保存。您从 fb 获得的令牌仅在有限的时间内有效,因此您不应保存它们。

更新: 关于 fb-uid 的保存性:您的 PHP 脚本从 facebook 获得签名请求。该请求使用您的应用程序的机密签名,因此其他人无法读取该数据。该请求包含当前用户的 fb-session(包括 uid)和访问令牌。

于 2011-05-27T23:25:22.380 回答