Facebook Connect实施 - 如果FB用户更改电子邮件怎么办?

时间:2011-04-16 20:22:06

标签: login facebook

我在我的应用程序上实现了FB connect,一切正常。

程序很标准:

  • 用户授权应用
  • 用户被重定向到我的网站
  • 我捕获了用户的FB ID,电子邮件,姓名
  • 我使用此信息在我的数据库中创建了一个新的唯一用户

但是我想知道用户是否离开了我的网站,并在FB上更改了他们的电子邮件。

下次他们访问我的网站时,他们的新电子邮件将不会更新,因为它是在他们第一次访问时创建的。

为了在每次访问时更新他们的电子邮件地址,我需要在每次访问时从cookie中提取令牌,并对数据库上的所有信息进行更新(即使它没有更改)

但这是一个不完整的解决方案。我的应用程序旨在向用户发送电子邮件警报。

如果他们保存了一堆电子邮件提醒,离开了我的网站,然后在FB上更改了他们的电子邮件,则电子邮件提醒会被发送到错误的地址,直到他们再次访问我的网站。

一些简单的选项包括警告前端用户关于使用FB连接的限制,与之共存或完全放弃此登录方法。

有没有人对如何解决这个泡菜有更明智的想法?

2 个答案:

答案 0 :(得分:3)

作为一种替代方法,我会考虑将real-time updates用于users,当用户更改任何信息时,Facebook会告诉,并且,他们的电子邮件地址。这比轮询更有效,因为您只在接收数据时进行处理,并且因为您没有要求那个可怕的offline_access令牌而更加用户友好。在实践中,我发现实时更新很难处理,但如果执行得当,它们可以完全按照您的要求进行操作。

答案 1 :(得分:2)

由于Facebook不会在用户更改电子邮件时通知您,是的,您需要轮询/检查它。

每次用户访问您的网站时都要进行检查,或者让用户授予您offline_access权限,以便获得未过期的令牌。有了它,您可以定期批量查询您的用户,看看他们是否在Facebook上更改了他们的电子邮件地址(您当然需要为每个用户存储此令牌)。