我正在创建一个网络应用程序,需要注册/认证,我正在考虑使用电子邮件地址作为唯一的用户 ID。下面是我看到的优缺点(最新的回复) :
优点
在注册期间少了一个需要填写的字段(只需要填写电子邮件地址、密码和验证密码)。我是个极简注册的狂热粉丝。
你不必担心你最喜欢的用户名已经被盗用了——你是唯一一个使用你的电子邮件地址的人。(谢谢 TStamper)
缺点
用户每次登录时都要输入更多信息。
如果用户需要多个帐户,该怎么办?他们需要另一个邮箱地址。(我是否希望用户能够创建多个帐户?)
很容易让潜在的攻击者猜到(如果他们知道目标的电子邮件地址,他们就知道登录 ID)。(谢谢 瓦西里)
用户可能被诱惑使用相同的密码,他们使用的电子邮件帐户,这是不安全的。(谢谢 托马斯)
如果您经常更改电子邮件地址,那么可能很难记住在中断很长时间后您使用的网站注册地址。(谢谢 软件猴子)
黑客可以将注册表格发送垃圾邮件,并使用“已经收到的电子邮件”回复来生成一个有效电子邮件列表。(谢谢 大卫)
不是每个人都有电子邮件地址
如果我使用电子邮件作为 id,我将提供一种机制,允许在用户更改地址时对其进行更改。在这种情况下,用户不会将内容发布到公共网站,因此不需要一个单独的用户名来保护电子邮件地址(但这是其他网站需要考虑的事情)。
另一个选择是实现 OpenID (这是一个完全不同的争论)。
这似乎对谷歌有效,但他们的服务是紧密集成的。我在分析中遗漏了什么?你有什么建议吗?有人有经验可以分享吗?
最终剪辑
谢谢你们的回答。我已经决定使用电子邮件作为 ID,但是允许在注册后创建用户名用于登录目的。这允许一点灵活性,同时保持注册尽可能短。它还可以防止用户更改电子邮件地址时出现问题(他们只需用自己的用户名登录并更新)。我也将实施方法,以防止暴力强制电子邮件地址的注册和登录系统(主要是一个冷却期后,重复尝试)。