email - 使用电子邮件地址作为用户 ID 的优缺点是什么?

标签 email authentication registration

我正在创建一个需要注册/身份验证的网络应用程序,并且我正在考虑使用电子邮件地址作为唯一的用户 ID。以下是我认为的优点和缺点(随回复更新):

优点

  • 注册时需要填写的字段少了(只需电子邮件地址、密码和验证密码)。我是简约注册的忠实粉丝。
  • 电子邮件地址更容易记住。 (感谢 MitchJeremy)
  • 您不必担心您最喜欢的用户名已被占用 - 您是唯一使用您的电子邮件地址的人。 (感谢 TStamper)

  • 缺点
  • 用户每次登录时都需要输入更多内容。
  • 如果用户想要多个帐户怎么办?他们需要另一个电子邮件地址。 (我什至希望一个用户能够创建多个帐户?)
  • 潜在的攻击者很容易猜到(如果他们知道目标的电子邮件地址,他们就知道登录 ID)。 (感谢 Vasil)
  • 用户可能会尝试使用与他们的电子邮件帐户相同的密码,这很不安全。 (感谢 Thomas)
  • 如果您经常更改电子邮件地址,那么在长时间的中断之后可能很难记住您用于注册网站的地址。 (感谢 Software Monkey)
  • 黑客可以向注册表发送垃圾邮件并使用“已发送电子邮件”的响应来生成有效电子邮件列表。 (感谢 David)
  • 不是每个人都有电子邮件地址。 (感谢 Nicholas)

  • 如果我使用电子邮件作为 id,我将提供一种机制,以便在用户更改地址时允许更改它。在这种情况下,用户不会将内容发布到公共(public)站点,因此不需要单独的用户名来保护电子邮件地址(但其他站点需要考虑)。

    另一种选择是实现 OpenID(这是另一回事)。

    这似乎适用于谷歌,但他们的服务是紧密集成的。我在分析中遗漏了什么?你有什么建议?有没有人有经验可以分享?

    最终编辑

    谢谢大家的回复。我决定使用电子邮件作为 id,但随后允许在注册后创建用于登录目的的用户名。这允许一点灵 active ,同时保持注册尽可能短。它还可以防止用户更改电子邮件地址时出现问题(他们只需使用其用户名登录并更新它)。我还将实现一些方法来防止将电子邮件地址从注册和登录系统中暴力破解(主要是反复尝试后的冷却期)。

    最佳答案

    我想你错过了一个专业人士:

    用户可能会记住他们的电子邮件地址;由于电子邮件地址是独一无二的,他们永远不必担心他们的首选用户名已经被占用。

    关于email - 使用电子邮件地址作为用户 ID 的优缺点是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/647172/

    相关文章:

    java - 我希望我的 Android 应用程序有一个简单的表单,可以将信息发送到我的 Gmail

    php - Symfony2 - 访问被拒绝(用户未完全验证)

    ruby-on-rails - 使用 devise_invitable 将用户添加到 Ruby on Rails 中的组?

    php - foreach 循环中仅输出一次值

    ruby-on-rails - 设计:将现有访客用户转换为注册用户

    JavaScript 电子邮件正则表达式

    php电子邮件在mysql数组后插入中断

    email - 为什么仍在使用 POP3 协议(protocol)?

    java - Linksys 路由器 Web 管理 - 在 .NET 中自动登录

    python - Azure B2C : Error in the callback after the edit profile when it tries to get a new token