实现社交登录用户模型

时间:2012-11-19 18:09:51

标签: php facebook database-schema

我希望用户能够从我的应用程序从任何提供商(Facebook,谷歌等)登录,并使用我的服务器创建帐户。我想弄清楚的是构建用户模型的最佳方法。

例如,

用户使用Facebook登录将创建一个新的用户记录,并且记录中会有一个标志告诉我该帐户是一个Facebook帐户。如果同一个用户使用我的服务器创建一个标准帐户,然后使用facebook重新登录,我该如何处理?最好的做法是将这两个帐户相互合并/关联,还是将它们视为两个不同的记录?

3 个答案:

答案 0 :(得分:1)

目前我正在研究相同的事情。我将使用这些规则:

  • 查看电子邮件。它是识别用户的最佳方式。
  • 成功注册后设置特殊的长时间cookie。稍后您可以要求用户合并 账户。
  • 用户名,真实姓名,生日等可以作为附加使用 params比较。

关于方案:我创建了一个表users(id,用户名,电子邮件)和user_data(id,user_id,email,service_id,service_name,service_type,is_active)。 service_id是特定于提供商的标识符,service_type是提供商名称(google / facebook / etc),service_name是来自提供商网站的displayName(可能与user不同) 。username)。 service_id + service_type必须是唯一的。

答案 1 :(得分:0)

知道它们是否是同一帐户的唯一方法是使用一些标识符。您可以请求从FB登录返回的电子邮件,并将该信息存储在表格中的电子邮件字段中,然后如果他们尝试使用该电子邮件创建帐户,您可以通知他们他们已经拥有帐户。

否则,我不知道你怎么知道他们是否是同一个人。

答案 2 :(得分:0)

我尝试了但却无法这样做。来自LoginRadius(https://www.loginradius.com/sdks/loginradius-sdk)的SDK来处理所有这些事情。对于CMS,他们已经预装了插件,这也很有帮助