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

标签 facebook twitter user-management social-media hybridauth

我将要使用 Opauth 或 Hybridauth 等多提供商身份验证框架之一(不知道哪个最好,但我更喜欢第二个)所以结果是我必须管理多个帐户。

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

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

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

希望我说得够清楚:)

问候

最佳答案

正如您所说,不可能只从不同来源检索用户名并存储它。我不知道它是如何在 stackoverflow 中完成的,但是如果您尝试注册名称是可选的,那么它可能不是唯一的 key 。我在这里看不到使用 twitter 登录的方法,所以我敢打赌电子邮件是一个唯一的 key 。

我会尝试回答您的问题,但我只使用过 facebook API,所以这可能无法与其他人一起完成。我想每个 API 都会为您提供一些可以存储在数据库中的东西,并在以后使用它来根据他们的 API 识别您的用户。

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

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

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

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

希望对你有帮助

关于facebook - 如何在我的网站上管理来自多提供商(facebook、twitter)的用户帐户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13867234/

相关文章:

python - 使用 keras 进行情感分析,包括中性推文

design-patterns - 订阅管理逻辑

mysql - Cakephp用户管理插件创建表

facebook - Graph API 如何获取 facebook 页面成员/喜欢

java - 为什么 Android Facebook 集成崩溃?

javascript - Cordova:使用 javascript api 登录 facebook 不工作

jenkins - 将 Jenkins 中的用户帐户链接或别名到 TFS 用户帐户

ruby-on-rails - Rails 3 facebook 插件/ gem ?

ruby-on-rails-3 - 如何代表登录用户发送 Twitter 直接消息?

java - Twitter 基本授权不起作用?