使用Javascript API登录时,它会返回包含许多参数的页面,例如访问令牌,用户ID和其他详细信息。如果我想将我的数据库中的用户与这个Facebook用户关联起来,这将是我想要存储的数据,以便以后能够进行身份验证?
换句话说,我应该存储哪个令牌,以便下次用户登录时,我可以在数据库中查找此令牌并对用户进行身份验证?
我会使用UID,但似乎很容易欺骗其他UID并冒充其他人。
谢谢!
答案 0 :(得分:1)
客户端欺骗不是您的顾虑。如果您基于FB身份验证显示FB内容,则FB负责该流程的完整性。
如果您正在使用此信息服务器端,那么您需要遵循不可欺骗的OAuth 2.0流程(据我所知),因为您将直接进入FB进行身份验证。
你不能混合两种流量,因为你容易受到攻击。
要回答您的其他问题,是的,您应该将您的数据库链接到UID,因为access_token会发生变化。
答案 1 :(得分:0)
您可以使用fb js sdk验证fb访问令牌。所以你可以把fb-uid作为保存。您从fb获得的令牌仅在有限时间内有效,因此您不应保存它们。
<强>更新强> 关于fb-uid的保存:你的PHP脚本从facebook获得签名请求。该请求是使用您的应用程序的秘密签署的,这样其他任何人都无法读取该数据。该请求包含当前用户(包括uid)的fb-session和访问令牌。