用户通过Facebook登录后,我应该如何处理用户数据


How should I handle the user data after the user login through Facebook

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

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

  • 我应该使用从Facebook检索信息来创建一个新帐户吗在我的用户表中自动为它们?

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

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

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

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

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

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

编辑:

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

更容易的是查看OmniAuth解决方案。OPAuth就是这样一种解决方案。不过,引入这样的东西可能需要您返工一些现有代码。