繁体   English   中英

您如何使用Facebook用户对象来获取自己的用户对象?

[英]How do you use a Facebook user object to get your own user object?

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

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

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

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

如有任何疑问,请将其写在评论中。 :)

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

如果您想允许多种登录方式,则可能会有另一个表,该表保存提供者(facebook,twitter,google等)与该帐户的关联ID之间的映射,并返回到您的用户表。

基本原理是,当他们使用第三方登录系统登录时,可以将其映射到站点上的当前帐户,或者如果站点上尚不存在则在站点上创建新帐户,然后将其映射到该帐户。 您显然需要向用户明确这一点,或者有某种合并帐户的方式,以防他们在使用第三方时尚未登录。 您还可能会要求从Facebook访问电子邮件,并尝试在创建新帐户之前将其映射到现有帐户

谢谢

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM