Login 使用OpenID如何处理同一个帐户的两个帐户

Login 使用OpenID如何处理同一个帐户的两个帐户,login,openid,registration,Login,Openid,Registration,如果我想提供OpenID作为唯一可用的注册方法,并想对昵称做一些有意义的事情,我如何处理两个具有相同Jon Smith昵称的用户 实际上,当我查看StackOverflow的URL模式时,我很惊讶URL中使用了内部用户ID。例如: 现在我意识到这可能是为了避免这个问题 但这也开启了一个棘手的局面。如果用户想要模拟其他人呢?他们只需要创建一个假的OpenID帐户,复制尼克,就可以了。当然,你可以判断谁在看OpenID url,但这很可能会在没有经验的用户中造成混淆 我正在考虑在注册时检查尼克,并

如果我想提供OpenID作为唯一可用的注册方法,并想对昵称做一些有意义的事情,我如何处理两个具有相同Jon Smith昵称的用户

实际上,当我查看StackOverflow的URL模式时,我很惊讶URL中使用了内部用户ID。例如:

现在我意识到这可能是为了避免这个问题

但这也开启了一个棘手的局面。如果用户想要模拟其他人呢?他们只需要创建一个假的OpenID帐户,复制尼克,就可以了。当然,你可以判断谁在看OpenID url,但这很可能会在没有经验的用户中造成混淆

我正在考虑在注册时检查尼克,并强迫用户选择另一个,以防它已经在使用中。但是你必须保留新的尼克并使用它,而不是在OpenID中设置的尼克。不太好

有什么想法吗?“不要使用OpenID”不是一个(有效的)想法:)我的意思是,我很可能最终没有使用它,但我想知道我要走多远才能使它“正常”工作


谢谢

没有假的OpenID,基本上OpenID是将URL空间映射到用户,并在如何传递数据方面有一些过手规则

由于没有一个关于如何为OpenID创建URL的标准,所以在他们的名字旁边加上完整的OpenID URL会有点难看。你已经注意到了


您自己的内部数据应始终被认为比用户传递的OpenID字段更有效。如果另一个OpenID已经声明了一个名称,请让用户选择另一个名称。

您可以使用Open ID中的刻痕,并将系统中的刻痕选择默认为该刻痕,但系统中不允许重复,因此他们将被迫为您的系统选择不同的刻痕

您仍然可以存储他们的OpenID尼克并使用它,因此,如果您希望他们能够不惜一切代价从OpenID显示他们的首选尼克,对于任何被复制用户,您可以强制显示为“OpenID尼克(您的唯一尼克)”


所以你可能会有Mike(mike1)、Mike(mike2)等,供任何喜欢很多用户想要的尼克的用户使用。我认为这会阻止任何用户选择非唯一的尼克,因为他们不希望它以这种方式显示。

根据我的说法,最好的方法是为每个服务提供商创建一个单独的文件夹,例如example.com/google/username,而这样做时,不同提供商之间不会有任何冲突,让人头疼的用户名问题应该只由服务提供商来解决,如果你试图这样做,那将是g8混乱和其他正在做的事情