0

我允许用户使用 facebook 登录我的网站,每当用户下次访问并使用 facebook 作为登录方法时,我应该能够将该用户识别为现有用户。

为了您的理解,这是流程应该如何工作:新用户访问网站并选择 Facebook 登录,用户被重定向到 FB 登录页面,用户填写用户名和密码,一旦我收到来自 FB 的访问令牌代码,我将将该信息存储在我的数据库中。下次用户访问该站点并选择 Facebook 作为登录方式时,在 Facebook 页面上进行身份验证后,它应该返回与第一次返回相同的访问代码,因此我可以将其与已存储的访问令牌代码进行比较并决定无论是现有用户还是我需要创建新帐户。

为了实现上述目的,我指的是https://developers.facebook.com/docs/howtos/login/server-side-login/

由于某种原因,访问令牌不断过期,并且与已存储在 Db 中的访问令牌不匹配,我做错了什么/可能是我误解了这里的概念。任何帮助深表感谢。

4

1 回答 1

0

我知道这已经晚了,但我正在处理类似的问题并试图找到解决方案。

您的问题是 Facebook 发出一个访问令牌,这有点像用户对您的应用程序的会话密钥。它确实过期了,应该计划好。发生这种情况时,您需要在下一次用户访问时请求新的。如果您希望滚动会话过期,则需要将已经有效的访问令牌换成稍后过期的新访问令牌。

当您进行后续登录时,您还将获得 facebook 用户 ID 以及新令牌。这就是您应该在数据库中比较以确定它是谁。

我自己有点坚持持久登录。

于 2014-02-12T11:58:07.160 回答