代码之家  ›  专栏  ›  技术社区  ›  Juan Delgado

使用OpenID,您如何处理具有相同昵称的2个帐户

  •  7
  • Juan Delgado  · 技术社区  · 16 年前

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

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

    https://stackoverflow.com/users/5908/z225rate

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

    但这也打开了一个棘手的场景。如果用户想冒充别人怎么办?他们只需要创建一个假OpenID帐户,复制昵称,就可以了。当然,你可以分辨出谁在看OpenID网址,但这很可能会在没有经验的用户中造成混淆。

    我在考虑在注册时检查昵称,并强迫用户拿起另一个昵称,以防它已经在使用中。但是,您必须保留新的昵称并使用它,而不是OpenID中设置的昵称。不太好。

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

    谢谢!

    3 回复  |  直到 8 年前
        1
  •  3
  •   Cade Roux    16 年前

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

    你仍然可以存储他们的Open ID昵称并使用它,所以如果你想让他们能够不惜一切代价从OpenID显示他们喜欢的昵称,对于任何被欺骗的用户,你可以强制显示为“OpenID昵称(你的唯一昵称)”。

    因此,对于任何喜欢许多用户想要的昵称的用户,你可能会有Mike(mike1)、Mike(mique2)等。我认为这会阻止任何用户选择非唯一的昵称,因为他们不希望它以这种方式显示。

        2
  •  1
  •   Scott Markwell    16 年前

    不存在伪造的OpenID,基本上OpenID是将URL空间映射到用户,并有一些关于如何传递数据的交接规则。

    由于没有关于如何为OpenID形成URL的标准,因此在他们的名字旁边加上完整的OpenID URL会有点难看。你已经注意到了。

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

        3
  •  1
  •   Vineet1982    14 年前

    据我所知,最好的方法是为每个服务提供商创建一个单独的文件夹,例如example.com/google/username,这样做的时候,不同提供商之间不会有任何冲突,用户名的头痛应该只由服务提供商完成,如果你试着这样做,那将是g8混乱,其他方式则是 http://stakeoverflow.com 正在做。..