【问题标题】:Implementing normal user/pass, Twitter & Facebook auth实现普通用户/通行证、Twitter 和 Facebook 身份验证
【发布时间】:2012-06-09 12:58:47
【问题描述】:

我创建了一个面向公众的网站,允许您使用用户名/密码、Twitter 或 Facebook 登录。

第一次使用 Twitter 登录时(例如),在我的数据库中创建了一个用户,其昵称与 Twitter 屏幕名称相匹配。我希望这个昵称始终是独一无二的。

问题在于,在某些情况下,具有该昵称的用户已经存在,因此无法添加该用户。我不确定这个问题的公认方法,到目前为止我能看到的唯一解决方案是要求用户覆盖他们的昵称,但这似乎不太优雅。

昵称需要唯一的原因不是代码问题,而是界面问题,例如有论坛,我希望每个用户都由他们的昵称唯一标识。

有没有其他人可以建议处理这个问题的方法?


编辑:应部分回复的要求,我将举例说明:

假设我有一个名为 Joe Bloggs 的用户,他是我网站上的成员。他不是 Twitter 或 Facebook 的成员。他在我网站上的昵称是 JoeBloggs。

然后,另一个 Joe Bloggs 出现,并想使用他的 Twitter 帐户登录。他的 Twitter 名称是 JoeBloggs,所以当他使用 Twitter 登录时,我的系统会尝试自动将他的昵称设置为 JoeBloggs。但是,这个昵称已经存在。在这样的昵称重叠的情况下,正常或最佳做法是什么?我唯一能想到的就是提示用户指定一个不同且唯一的昵称(仅用于在我的网站上显示)。

我问的原因是,对于允许您通过 Facebook、Twitter、Yahoo 登录的网站来说,这一定是一个常见问题 - 从所述网站返回的名称一定有重叠,所以我想知道正常的流程是什么是。

【问题讨论】:

    标签: asp.net-mvc facebook authentication twitter login


    【解决方案1】:

    您能否使用 Twitter API 确认他们确实是他们所说的 Twitter ID,如果没有 Twitter 帐户,允许他们通过其他方式进行身份验证(Google+、Facebook、LinkedIn、旧式用户名和密码)?允许用户使用他们不拥有的 Twitter ID 登录似乎是在要求一个受伤的世界。

    【讨论】:

    • 我认为您没有理解我的问题。我已经有了用户,一个庞大的用户数据库,他们都有昵称。我正在考虑允许 Twitter 作为新用户注册的附加选项。当他们使用 Twitter 注册时,我想自动将他们的昵称分配给他们的 Twitter ID。如果已经存在具有该昵称的用户,则会出现此问题。我所说的一切都不意味着允许用户通过 Twitter 登录,如果他们不拥有它。
    • 我有一个非常相似的情况——一个社交集成网站,用户可以使用 FB、Twitter、LinkedIn 或老式用户名/密码登录,然后可以连接其中一个或多个帐户。如果您可以发布有关用户表外观的详细信息,我想我会有所帮助。
    【解决方案2】:

    也许您可以尝试更改数据库本身 - 获取像“nickOrigin”这样的字段,允许存在像“[yourSite]”、“twitter”等值,并且只有在没有具有相同昵称的条目时才允许新条目并且 nickOrigin 存在。执行查询以修改现有用户的 nickOrigin 为 [yourSite],并且事情应该是向后兼容的,或者至少我是这样想象的 :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-13
      相关资源
      最近更新 更多