Authentication 允许使用电子邮件地址登录,同时允许多个用户使用相同的电子邮件地址

Authentication 允许使用电子邮件地址登录,同时允许多个用户使用相同的电子邮件地址,authentication,language-agnostic,Authentication,Language Agnostic,对于一个网站,我希望用户能够使用他们唯一的用户名或电子邮件地址登录 但是,此站点可能允许使用相同电子邮件地址的多个用户帐户。(例如,他们可能是为两个不同公司工作的同一个人,等等。此外,出于业务原因,每个用户帐户仅与一个公司关联。因此,如果用户为多个公司工作,则每个用户都有一个登录名。) 当用户使用电子邮件地址登录时,以下是一些可能的处理方法: 如果有多个帐户与电子邮件地址匹配,并且密码(当然是哈希)与具有此地址的帐户的至少一个密码匹配,则执行以下操作之一: A.告诉用户他们的电子邮件地址与多个帐

对于一个网站,我希望用户能够使用他们唯一的用户名或电子邮件地址登录

但是,此站点可能允许使用相同电子邮件地址的多个用户帐户。(例如,他们可能是为两个不同公司工作的同一个人,等等。此外,出于业务原因,每个用户帐户仅与一个公司关联。因此,如果用户为多个公司工作,则每个用户都有一个登录名。)

当用户使用电子邮件地址登录时,以下是一些可能的处理方法:

如果有多个帐户与电子邮件地址匹配,并且密码(当然是哈希)与具有此地址的帐户的至少一个密码匹配,则执行以下操作之一:

A.告诉用户他们的电子邮件地址与多个帐户关联,因此他们需要使用用户名登录

B.与A相同,但是如果密码与该帐户的一个密码完全匹配,只需接受该密码并作为该帐户登录即可

我想使用B。然而,使用密码来区分两个帐户似乎有一些明显的安全隐患(我可能忽略了),甚至一些不明显的隐患


这是一个好的解决方案,还是有一个被广泛接受的“最佳实践”?

这方面的最佳实践是拥有一个帐户。您的数据库将包含指示哪些用户在哪些公司拥有访问权/会员资格的记录。

您可以允许单点登录指向“选择您的帐户”页面,用户在该页面上决定他们希望在当前会话中使用的别名。

如果选择“B”,如果用户为两个帐户选择相同的密码,会发生什么情况?您将如何选择自动登录到哪个帐户,用户将如何登录到第二个帐户?凌乱。

大多数网站使用电子邮件地址+单一密码作为主要标识符。人们已经习惯了它,而且它是有效的。随你的便

如果人们想要与他们的登录相关的其他信息,例如其他帐户,他们当然可以共享一个登录,然后在登录后选择要使用的帐户。它不是登录的一部分,但与之关联


设置多次登录可能会带来麻烦,因为这需要更多的管理,并且会增加人们懒于保持密码安全的可能性。当你需要更改密码时,怎么办?都换了吗?KISS=保持简单,愚蠢。

如果B中出现歧义,它将返回到A。