我正在创建一个需要注册/认证的Web应用程序,并考虑使用电子邮件地址作为唯一的用户ID。以下是我看到的优缺点(更新后包含回复):
优点
在注册过程中少填一个字段(只需输入电子邮件地址、密码和确认密码)。我非常喜欢极简注册。
您不必担心您喜欢的用户名已被占用 - 您是唯一使用您的电子邮件地址的人。(感谢TStamper)
缺点
用户每次登录时需要输入更多内容。
如果用户想要多个账号怎么办?他们需要另一个电子邮件地址。(我是否希望用户能够创建多个帐户?)
如果潜在攻击者知道目标的电子邮件地址,则很容易猜到登录ID。(感谢Vasil)
用户可能会倾向于使用他们用于电子邮件帐户的相同密码,这是不安全的。(感谢Thomas)
如果您经常更改电子邮件地址,则可能难以记住长时间停顿后您用于注册网站的地址。(感谢Software Monkey)
黑客可以通过垃圾注册并利用“电子邮件已被使用”的回应来生成有效电子邮件列表。(感谢David)
并非每个人都有电子邮件地址。(感谢Nicholas)
如果我使用电子邮件作为ID,我会提供一种机制,允许在用户更改地址时更改它。在这种情况下,用户不会向公共网站发布内容,因此不需要单独的用户名来保护电子邮件地址(但这是考虑其他网站时需要考虑的一些事项)。
另一个选择是实施OpenID(这是另一个争论话题)。
这似乎对Google有用,但他们的服务紧密集成。在我的分析中,我错过了什么?你有任何建议吗?有人有经验分享吗?
最终编辑
感谢大家的回复。我决定使用电子邮件作为ID,然后允许在注册后创建用户名以用于登录。这样可以在保持注册尽可能简短的同时提供一些灵活性。它还可以防止用户更改电子邮件地址时出现问题(他们只需使用用户名登录并更新即可)。我还将实施方法来防止从注册和登录系统中强制执行电子邮件地址的攻击(主要是在重复尝试后冷却一段时间)。