Database design 重新思考用户登录过程:用户/显示名称和OpenID

Database design 重新思考用户登录过程:用户/显示名称和OpenID,database-design,openid,authentication,Database Design,Openid,Authentication,使用openID带来了一些问题,我希望SO社区能帮助我回答 OpenID和(现在已过时的)用户名 据我所知,openID的一个主要目标是消除人们为某些站点创建另一个用户名和密码的需要,这些站点可能只使用一次。虽然我认为这是一个非常棒的想法,但它确实引起了一点混乱 用户名不仅用作身份验证设备(登录凭据),还用作将用户标识为网站上创建内容(评论、线程帖子等)的一种手段。 我的担忧 当某人在网站上移动时,我用什么来识别他们?我是否仍然要求他们在注册我的网站时选择用户名 我注意到在类似这样的网站上

使用openID带来了一些问题,我希望SO社区能帮助我回答

OpenID和(现在已过时的)用户名 据我所知,openID的一个主要目标是消除人们为某些站点创建另一个用户名和密码的需要,这些站点可能只使用一次。虽然我认为这是一个非常棒的想法,但它确实引起了一点混乱

用户名不仅用作身份验证设备(登录凭据),还用作将用户标识为网站上创建内容(评论、线程帖子等)的一种手段。

我的担忧

  • 当某人在网站上移动时,我用什么来识别他们?我是否仍然要求他们在注册我的网站时选择用户名
  • 我注意到在类似这样的网站上,使用了“显示名称”而不是用户名。这是一个用户可以更改的字段。
    • 当用户决定更改其显示名称时,如何避免混淆
  • 限制谁可以登录到您的站点,即使他们拥有有效的OpenID 想象一下以下场景:

    • 你有一个网站,你只希望你和三个朋友能够访问
    • 在传统的用户身份验证设置中,您将为三个用户创建帐户 朋友手动登录,然后通过电子邮件发送他们的登录凭据。但是,在这种情况下,您希望他们使用openID
    我的问题

  • 如何将openID身份验证限制为特定的Pople子集
  • 如何为尚未使用OpenID对您的站点进行身份验证的用户设置帐户

  • 再次感谢社区为您提供的时间和帮助。你们真是太棒了。

    易趣有一种方法可以避免名称变更带来的混乱/欺诈(或者几年前就有了)。在30天左右的时间里,你的名字旁边会有一个徽章,上面写着你刚改了名字。如果您愿意,您甚至可以提供全名历史记录

    就限制访问而言,他们在您的网站上仍然拥有由您的网站代码创建的帐户。OpenID只是提供了身份验证机制。比如说,你仍然可以要求所有新用户在访问你网站的重要部分之前都要经过管理员的验证

    描述它的另一种方式是将身份验证和授权视为两个不同的概念。OpenID只包括身份验证。您的站点将管理已验证帐户的授权

    如何将openID身份验证限制为特定的Pople子集

    难道你不能为他们建立一个帐户,并禁用注册,这样只有他们才能登录吗?在使用OpenID时,您仍然拥有用户帐户,因此您可以执行与正常操作类似的限制。您可以将OpenID视为用户名,只允许某些OpenID注册/登录

    如何为尚未使用OpenID对您的站点进行身份验证的用户设置帐户


    我可能会在注册过程中要求显示名称。一些OpenID提供程序在身份验证后将显示名称传回,如果您的站点还没有使用该名称,您可能会使用该名称。

    好的,这是有意义的。所以,我的三个朋友必须告诉我他们想在我的网站上使用什么openID,我会为他们预加载。徽章的想法很有趣。因此,几乎可以归结为:随着时间的推移,随着web逐渐接受openID的概念,显示名称变得不那么重要了。用户名(显示名)更多的是关于“我们叫你什么?”和“你到底是谁?”你同意吗?不同意?这有意义吗?@Levi:对。认证基本上意味着证明你的身份——“你是谁”部分。正如Scott所说,openID就是这样做的。用户通过身份验证后,授权步骤是——“现在我知道你是谁,你有权访问什么?”因此,你的应用程序仍然负责将openID绑定到网站上的“帐户”,从而获得用户的显示名称、访问级别和任何其他属性。