5

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

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

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

我以为我可以检查电子邮件,但是...我了解到电子邮件地址不能成为密钥,因为 Twitter 不会将其提供给您。

希望我足够清楚:)

问候

4

2 回答 2

0

HybridAuth 为您提供了一种将您的网站与社交媒体集成的绝佳方式...

http://hybridauth.sourceforge.net/

这也应该有帮助...

于 2013-02-08T07:51:38.857 回答
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. 您可以使用第一种方法并要求用户更改与其他用户冲突的属性(在您的情况下为名称),甚至要求根据他们用于登录的社交网络来填写缺少的内容。您可以使用姓名+姓氏作为用户名,以减少冲突的可能性,如果这是您要存储以识别您的用户的内容。

希望这可以帮助

于 2012-12-13T21:23:17.290 回答