如何管理通过两个身份验证的用户名


how to manage username coming via two authentications

我正在通过不同的社交网络为我的网站验证用户。

为他们提供了通过社交网络登录和注册等设施

现在的问题是,如果用户A有一个facebook帐户,用户名是"userme",另一个用户使用我的网站自己的注册系统,用户名是"userme",如果

在登录我的网站时显示"用户A在用户B之后注册"

在注册期间,用户B将被提醒没有"userme",因为它已经被占用了,但如果用户A"登录",他将永远不会被提醒,因为这是一个facebook认证。

如果我知道什么是错误的,请纠正我或给一个解决方案。

复合数据方法

考虑到社交登录的工作方式,如果您使用隐藏的组合用户名(如Marc B所建议的)存储帐户可能会更好。手动注册的用户将看到他们的用户名为myuser -但一个单独的标识(唯一ID)字段将其存储为myOwn_myuserfb_myuser

完全分离方法

将他们的Facebook用户名与你的网站用户名分开。你可能过早地给了他们一个ID,而你最好在他们第一次登录后让他们确认他们的facebook用户名是他们的你的网站用户名。当一个Facebook用户(最初)登录到您的站点,并且他们建议的用户名已经被一个现有用户使用时,您可以提示他们创建一个新用户名,或者生成一个新用户名(myuser2)。