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