【发布时间】:2010-10-13 10:16:25
【问题描述】:
我正在创建一个需要注册/身份验证的网络应用,并且我正在考虑使用电子邮件地址作为唯一的用户 ID。以下是我认为的利弊(已更新回复):
优点
在注册过程中需要填写的字段更少(只需电子邮件地址、密码和验证密码)。我是极简注册的忠实粉丝。
您不必担心您最喜欢的用户名已被占用 - 您是唯一使用您的电子邮件地址的人。 (感谢TStamper)
缺点
用户每次登录时都要输入更多内容。
如果用户想要多个帐户怎么办?他们需要另一个电子邮件地址。 (我什至希望一个用户能够创建多个帐户?)
潜在的攻击者很容易猜到(如果他们知道目标的电子邮件地址,他们就知道登录 ID)。 (感谢Vasil)
用户可能会尝试使用与他们的电子邮件帐户相同的密码,这不利于安全性。 (感谢Thomas)
如果您经常更改电子邮件地址,那么在长时间的中断之后可能很难记住您用于注册网站的地址。 (感谢Software Monkey)
黑客可能会向注册表发送垃圾邮件并使用“已发送电子邮件”的回复来生成有效电子邮件列表。 (感谢David)
并非每个人都有电子邮件地址。 (感谢Nicholas)
如果我使用电子邮件作为 id,我将提供一种机制,以允许在用户更改地址时更改它。在这种情况下,用户不会将内容发布到公共站点,因此不需要单独的用户名来保护电子邮件地址(但其他站点需要考虑)。
另一种选择是实施 OpenID(这是另一回事)。
这似乎适用于 Google,但他们的服务是紧密集成的。我在分析中遗漏了什么?你有什么建议?有没有人有经验分享一下?
最终编辑
感谢大家的回复。我已决定使用电子邮件作为 id,但随后允许在注册后创建用于登录目的的用户名。这允许一点灵活性,同时保持注册尽可能短。它还可以防止用户更改电子邮件地址时出现问题(他们只需使用其用户名登录并更新它)。我还将实施一些方法来防止将电子邮件地址暴力破解出注册和登录系统(主要是反复尝试后的冷却期)。
【问题讨论】:
-
您的第一个 PRO 并非在所有情况下都是正确的,因为您的用户仍然需要用户名才能在您的网站上发布内容。
-
您应该使用答案中的赞成/反对短名单来编辑您的问题。
-
@vamin:如果回答对您有帮助,请接受。谢谢
-
或者您只能显示“ID/密码组合不正确。请重试或重置您的密码。”无论您使用哪种方法,请记住在蜘蛛的“重置密码”页面中也使用一些对策。
标签: email authentication registration