我允许用户使用Facebook登录我的网站,每当用户下次访问并使用Facebook作为登录方法时,我应该能够将该用户识别为现有用户。
为了您的理解,这是流程应该如何工作:新用户访问网站并选择Facebook登录,用户被重定向到FB登录页面,用户填写用户名&密码,一旦我从FB收到访问令牌代码,我会将该信息存储在我的Db中。下次当用户访问网站并选择Facebook作为登录方法时,在Facebook页面上进行身份验证后,它应该返回它在第一次返回的相同访问代码,因此我可以将其与已存储的访问令牌代码进行比较并确定无论是现有用户还是我需要创建新帐户。
为了实现上述目标,我指的是https://developers.facebook.com/docs/howtos/login/server-side-login/
由于某种原因,访问令牌持续到期并且它与已经存储在Db中的访问令牌不匹配,我做错了/可能是我在这里误解了这个概念。非常感谢任何帮助。
答案 0 :(得分:0)
我知道这已经很晚了,但我正在研究类似的问题并尝试找到解决方案。
你的问题在于Facebook发出了一个访问令牌,就像用户对你的应用程序的会话密钥一样。它确实到期,应该计划。当发生这种情况时,您需要在下次用户访问时请求新的。如果您希望滚动会话过期,则需要将已经有效的访问令牌交换为稍后过期的新令牌。
当您进行后续登录时,您还将获得facebook用户ID以及新令牌。这就是您应该在数据库中进行比较以确定它是谁。
我自己有点坚持持久登录。