1

我正在使用 Facebook Connect 做一些工作,并想知道如何在 Stack Overflow 上,例如,您可以使用 Facebook 或 Yahoo 等其他登录提供商登录,并且该网站能够在您注册时获取您的用户详细信息在堆栈溢出?据我所知,您可以使用不同的电子邮件地址进行注册,并且您的名字和姓氏不是唯一标识符,那么它是如何完成的呢?

4

2 回答 2

1

这完全取决于您的用例。例如,我使用电子邮件地址作为唯一标识符。当您使用 Facebook 登录时,我的门户网站还会从 Facebook 询问您的电子邮件地址。然后,它从数据库中搜索具有匹配电子邮件地址的用户对象。

有不止一种方法可以做到这一点:

  • 只允许通过 Facebook 登录。然后,您绝对可以通过他们的电子邮件地址识别所有用户。
  • 也允许通过 Facebook 和用户名/密码登录,但要求您的用户在两个地方使用相同的电子邮件地址。
  • 也允许通过 Facebook 和用户名/密码登录,并允许您的用户为每个用户使用不同的电子邮件地址。这是最复杂的选项。大多数网站通过要求用户将他们的 Facebook 帐户与他们的网站帐户“配对”来解决这个问题。这意味着第一次设置时,用户需要登录网站,当他们登录网站时,他们可以登录 Facebook。然后您的站点存储他们的 Facebook 身份(在这种情况下不需要电子邮件,只需将用户 ID 存储在一个字段中)。之后,用户只能通过 Facebook 登录,您可以将他们的 Facebook 用户 ID 与您自己数据库中的相应用户对象配对。

如果您有任何问题,只需将它们写在评论中。:)

于 2012-04-17T07:01:33.063 回答
0

您很可能会在您的用户表中添加一个新列,例如 facebook_uid。然后,如果用户有一个现有帐户,您可以让他们先登录,然后再连接到 facebook,然后您可以将他们的 facebook_uid 存储在您现有的 user_id 中。然后,如果用户出现并且已经登录到 Facebook,您也可以将他们登录到您的网站。如果用户在您的网站上没有现有帐户,您只需创建一个(可能使用来自 facebook 的用户名填写)

如果您想允许多种登录方法,您可能有另一个表,其中包含提供者(facebook、twitter、google 等)和该帐户的关联 ID 之间的映射回您的用户表。

基础是,当他们使用 3rd 方登录系统登录时,您要么将其映射到您网站上的当前帐户,要么在您的网站上创建新帐户(如果尚不存在),然后将该帐户映射到该帐户。您显然需要向您的用户说明这一点,或者有一些方法来合并帐户,以防他们在使用第 3 方时尚未登录。在创建新帐户之前,您还可能会要求从 facebook 访问电子邮件并尝试将其映射到现有帐户

谢谢

于 2012-04-17T06:55:57.593 回答