1

我希望用户能够从我的应用程序中的任何提供商(facebook、google 等)登录,并在我的服务器上创建一个帐户。我想弄清楚的是构建用户模型的最佳方法。

例如,

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

4

2 回答 2

1

目前我正在做同样的事情。我将使用这些规则:

  • 检查电子邮件。它是识别用户的最佳方式。
  • 注册成功后设置特殊的长期cookie。稍后您可以要求用户合并帐户。
  • 用户名、实名、生日等可用作附加参数进行比较。

关于方案:我创建了一个表users(id、username、email)和user_data(id、user_id、email、service_id、service_name、service_type、is_active)。service_id是提供者特定的标识符,service_type是提供者名称(google/facebook/etc),并且service_name是来自提供者站点的显示名称(可能与user.不同username)。service_id + service_type必须是唯一的。

于 2012-11-19T18:40:32.080 回答
0

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

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

于 2012-11-19T18:12:44.087 回答