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

4
对于一个网站,我希望用户能够使用他们的唯一用户名或电子邮件地址登录。然而,该网站可能允许使用相同电子邮件地址的多个用户账户(例如,他们可能是为两个不同公司工作的同一个人等)。此外,出于业务原因,每个用户账户仅与一个公司相关联。因此,如果用户为多个公司工作,则需要为每个公司登录一次。
以下是处理用户使用电子邮件地址登录时的几种可能方式:
如果有多个账户与电子邮件地址匹配,并且密码(当然是哈希过的)与至少一个拥有此地址的账户的密码匹配,则执行以下操作之一:
A. 告诉用户,他们的电子邮件地址与多个账户相关联,因此他们需要使用用户名进行登录。
或者
B. 与A相同,但是如果密码恰好与一个账户的密码匹配,则只接受并登录该账户。
我想采用B。但是,使用密码来区分两个账户似乎可能存在一些明显的安全缺陷(我可能忽略了某些问题),甚至还可能存在一些非明显的问题。
这是否是一个好的解决方案,或者有没有广泛接受的“最佳实践”?
4个回答

3

最佳做法是只拥有一个账户。您的数据库应包含记录,指示哪些用户可以访问/成为哪些公司的成员。


2
您可以允许单点登录指向一个“选择您的帐户”页面,在该页面上,用户可以决定在当前会话中使用哪个别名。请保留HTML标签。

2

大多数网站都使用电子邮件地址+单个密码作为主要标识符。人们习惯于这种方式,它也很有效,请采用这种方式。

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

设置多个登录可能会导致麻烦,因为需要更多的管理,并增加人们懒得保护他们的密码安全性的可能性。那么当您需要更改您的密码时怎么办?全部更改吗?KISS = 保持简单、愚蠢。


1
如果您选择方案“B”,那么如果用户为两个账户设置相同的密码会发生什么呢?您又该如何自动选择登录哪个账户,用户又该如何登录第二个账户呢?这样会变得非常混乱。

2
如果B存在歧义,它会回退到A。 - kes

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接