如何在我的网站上管理来自多提供商(facebook,twitter)的用户帐户?

Pie*_*rot 5 twitter facebook social-media user-management hybridauth

我即将使用其中一个多提供商身份验证框架Opauth或Hybridauth(不知道哪个是最好的,但我对第二个有一点偏好)所以后果是我必须管理多账户.

事实上,我已经有自己的帐户管理(登录+密码+电子邮件),我去年有facebook用户.现在我将不得不处理Twitter帐户,linkedin帐户等...所以问题很简单:如何管理用户名?例如,John在我的网站上创建了一个帐户.所以"John"登录/用户名被采用.但是,如果来自Facebook的另一个John再来自Twitter的另一个,那么我该怎么做?在Stackoverflow(或其他地方),实践是什么?

我不希望John代表另一个John写信.今天使用我自己的系统,我验证登录(用户名)是唯一的.如果不是,我拒绝用户.但现在 ?

我以为我可以检查电子邮件但是...我知道电子邮件地址不能成为关键因为Twitter没有给你.

希望我足够清楚:)

问候

Lui*_*nte 0

正如您所说,不可能仅从不同来源检索用户名并存储它。我不知道它是如何在 stackoverflow 中完成的,但如果您尝试注册,则该名称是可选的,因此它可能不是唯一的密钥。我在这里看不到使用 Twitter 登录的方式,所以我打赌电子邮件是唯一的密钥。

我会尝试回答你的问题,但我只使用过 facebook API,所以也许其他人无法做到这一点。我认为每个 API 都会为您提供一些可以存储在数据库中的内容,并在以后使用它来根据 API 识别您的用户。

如果您允许用户使用 facebook(或 gmail、twitter...)注册,那么您可以使用以下方法(我确信还有更多):

  1. 他们总是使用 facebook(或 twitter、gmail...)登录:您可以使用 API 提供的密钥以及您可以收集的其他有用信息在数据库中为他们存储一条记录。正如您所说,每个 API 都会为您提供不同的东西,因此您必须提前考虑为用户提供良好体验所需的内容:是否需要他们的名字?年龄?如果您需要的数据多于 API 提供的数据,您应该跳到下一个方法或预取它并使其可编辑。在这里,您不会要求用户输入密码,因此他们只能使用 facebook 登录,而不是使用登录表单,如果用户再次尝试使用 facebook(或 twitter、gmail)进行身份验证,您就知道必须查找和验证哪个密钥你的使用。

  2. 他们可以创建一个帐户并将其与 Facebook(或其他)链接:您请求 Facebook 许可,然后为他们预先填写一份表格以提供缺少的数据(密码,如果他们使用 Twitter,则为邮件...),然后创建记录存储 API 提供的唯一密钥,如果他们使用 Facebook 帐户登录,则完全按照步骤 1 进行。如果您要求提供密码和电子邮件,他们也可以使用标准登录表单。

  3. 您可以使用第一种方法,并要求用户更改与其他用户(在您的情况下为名称)冲突的属性,甚至要求根据他们用于登录的社交网络填写缺少的内容。您可以使用如果您想要存储用户名+姓氏作为用户名,以减少冲突的可能性。

希望这可以帮助