1

目前我正在使用传统的方式来实现成员系统,例如用户表和其他相关表(例如 user_product)有一个外键来链接到该用户

问题是,我如何通过 facebook 使用会员登录?例如

  • 我应该使用从 facebook 获取的信息在我的用户表中自动为他们创建一个新帐户吗?

  • 我应该创建一个新表,例如 facebook user ,然后插入其中吗?

  • 我是否应该忽略登录信息而不将其添加到我的数据库中?

我遇到的问题是有一个 user_id,从 facebook 登录的人不会有它。因此,当他们使用购买功能时,我无法插入记录。但是,如果我将它们添加到我的用户表中,就会有一些信息。缺少例如密码、电话...... 那么通过 facebook 处理登录的常见方法是什么?谢谢

4

1 回答 1

1

在实践中,有几种不同的处理方式。某些服务仍要求用户填写信息,即使在用户单击“通过 Facebook 登录”后也是如此。除非有您绝对需要的信息,否则我建议您不要使用这种方法。

您可以对用户采用多态方法,并拥有一个普通用户表和一个 Facebook 用户表。在 SQL 数据库中还有其他方法可以处理继承,但这可能会变得复杂。

第三种方法是将 Facebook id 和 auth 令牌作为用户表上的可为空列。这还需要您将密码列设为可为空,或者将其设置为长且随机的值。这样,Facebook 关联帐户的功能与其他帐户相同,但登录方式除外。由于您拥有他们的电子邮件,Facebook 用户应该仍然可以使用“重置密码”选项来获取密码。

编辑:

您需要为您需要的内容创建列,以便为用户维护 Facebook 记录。Facebook id、oauth token 和 oauth secret 都在其中。当用户单击使用 facebook 登录时,在收到 Facebook 的响应后,您应该运行检查以查看是否存在具有给定 facebook id 的用户。如果存在,请登录用户。否则,创建一个。

更容易的是查看 OmniAuth 解决方案。OPAuth就是这样一种解决方案。不过,引入这样的内容可能需要您重新编写一些现有代码。

于 2013-11-11T08:42:32.317 回答