实施普通用户/通行证,Twitter和Facebook认证

时间:2012-06-05 13:45:51

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

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

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

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

昵称需要唯一的原因不是代码问题,而是接口问题,例如有论坛,我希望每个用户都能通过昵称进行唯一识别。

是否有任何其他方法可以建议处理此问题?


编辑:根据一些回复的要求,我将澄清一个例子:

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

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

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

也许您可以尝试更改数据库本身 - 获取像'nickOrigin'这样的字段,允许使用'[yourSite]','twitter'等等值,如果没有相同缺口的条目,则只允许新条目AND nickOrigin存在。执行一个查询来修改现有用户以获得[yourSite]的nickOrigin,并且事情应该是向后兼容的,或者至少我想象他们那样:)