我正在创建一个需要注册/身份验证的网络应用程序,并且我正在考虑使用电子邮件地址作为唯一的用户 ID。以下是我认为的优点和缺点(随回复更新):
优点
注册时需要填写的字段少了(只需电子邮件地址、密码和验证密码)。我是简约注册的忠实粉丝。
您不必担心您最喜欢的用户名已被占用 - 您是唯一使用您的电子邮件地址的人。(感谢TStamper)
缺点
用户每次登录时都要输入更多内容。
如果用户想要多个帐户怎么办?他们需要另一个电子邮件地址。(我什至希望用户能够创建多个帐户?)
潜在的攻击者很容易猜到(如果他们知道目标的电子邮件地址,他们就知道登录 ID)。(感谢瓦西尔)
用户可能会尝试使用与他们的电子邮件帐户相同的密码,这很不安全。(感谢托马斯)
如果您经常更改电子邮件地址,那么在长时间的中断之后可能很难记住您用于注册网站的地址。(感谢软件猴子)
黑客可以向注册表发送垃圾邮件并使用“已发送电子邮件”的响应来生成有效电子邮件列表。(感谢大卫)
不是每个人都有电子邮件地址。(感谢尼古拉斯)
如果我使用电子邮件作为 id,我将提供一种机制,以便在用户更改地址时允许更改它。在这种情况下,用户不会将内容发布到公共站点,因此不需要单独的用户名来保护电子邮件地址(但其他站点需要考虑)。
另一种选择是实施 OpenID(这是另一回事)。
这似乎适用于谷歌,但他们的服务是紧密集成的。我在分析中遗漏了什么?你有什么建议?有没有人有经验可以分享?
最终编辑
谢谢大家的回复。我决定使用电子邮件作为 id,但随后允许在注册后创建用于登录目的的用户名。这允许一点灵活性,同时保持注册尽可能短。它还可以防止用户更改电子邮件地址时出现问题(他们只需使用其用户名登录并更新它)。我还将实施一些方法来防止将电子邮件地址从注册和登录系统中暴力破解(主要是反复尝试后的冷却期)。