我希望用户能够从我的应用程序中的任何提供商(facebook、google 等)登录,并在我的服务器上创建一个帐户。我想弄清楚的是构建用户模型的最佳方法。
例如,
用户使用 facebook 登录,将创建一个新的用户记录,并且记录中会有一个标志告诉我该帐户是 facebook 帐户。如果同一用户在我的服务器上创建了一个标准帐户,然后使用 facebook 重新登录,我该如何处理?将这两个帐户相互合并/关联或将它们视为两个不同记录的最佳做法是什么?
我希望用户能够从我的应用程序中的任何提供商(facebook、google 等)登录,并在我的服务器上创建一个帐户。我想弄清楚的是构建用户模型的最佳方法。
例如,
用户使用 facebook 登录,将创建一个新的用户记录,并且记录中会有一个标志告诉我该帐户是 facebook 帐户。如果同一用户在我的服务器上创建了一个标准帐户,然后使用 facebook 重新登录,我该如何处理?将这两个帐户相互合并/关联或将它们视为两个不同记录的最佳做法是什么?
目前我正在做同样的事情。我将使用这些规则:
关于方案:我创建了一个表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
必须是唯一的。
知道它们是否是同一个帐户的唯一方法是使用一些标识符。您可以请求从 FB 登录返回电子邮件并将该信息存储在表格中的电子邮件字段中,然后如果他们尝试使用该电子邮件创建帐户,您可以通知他们他们已经有一个帐户。
否则,我不明白你怎么知道他们是不是同一个人。