71

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

优点

  1. 注册时需要填写的字段少了(只需电子邮件地址、密码和验证密码)。我是简约注册的忠实粉丝。

  2. 电子邮件地址更容易记住。(感谢米奇杰里米

  3. 您不必担心您最喜欢的用户名已被占用 - 您是唯一使用您的电子邮件地址的人。(感谢TStamper

缺点

  1. 用户每次登录时都要输入更多内容。

  2. 如果用户想要多个帐户怎么办?他们需要另一个电子邮件地址。(我什至希望用户能够创建多个帐户?)

  3. 潜在的攻击者很容易猜到(如果他们知道目标的电子邮件地址,他们就知道登录 ID)。(感谢瓦西尔

  4. 用户可能会尝试使用与他们的电子邮件帐户相同的密码,这很不安全。(感谢托马斯

  5. 如果您经常更改电子邮件地址,那么在长时间的中断之后可能很难记住您用于注册网站的地址。(感谢软件猴子

  6. 黑客可以向注册表发送垃圾邮件并使用“已发送电子邮件”的响应来生成有效电子邮件列表。(感谢大卫

  7. 不是每个人都有电子邮件地址。(感谢尼古拉斯

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

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

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

最终编辑

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

4

15 回答 15

32

就个人而言,我更喜欢只使用我的电子邮件地址作为用户名。要记住的事情少了一件,而且我永远不必担心我的首选名字已经被占用了。

只是我的2美分!

于 2009-03-15T02:49:16.383 回答
28

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

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

于 2009-03-15T02:48:05.700 回答
12

作为网站用户,我可以告诉你,我讨厌记住不必要的用户名。我不使用独特的句柄或任何东西,所以我永远记不起我使用的我的名字的哪个变体还没有被使用。我宁愿输入我的电子邮件地址。

另外,我喜欢 OpenID。

于 2009-03-15T02:48:56.307 回答
12

缺点

  1. 当电子邮件帐户使用相同的密码时,破坏一个自动意味着破坏另一个。
于 2009-03-15T02:49:48.520 回答
10

CON:不是每个人都有电子邮件地址。考虑一下您的数据库是否曾经被内部应用程序访问过。如果你在经营一家商店,人们打电话来下订单,并拒绝提供电子邮件地址。因此,虽然将电子邮件地址作为默认用户 ID 很酷,但请确保允许其他人进入系统。(当然,这取决于上下文。)

艰难地学会了这一点。

于 2009-03-15T04:20:51.967 回答
4

我倾向于不喜欢赞成/反对清单,而是尝试考虑好处和挑战。

挑战:

一些用户会倾向于使用其 ISP 提供的电子邮件地址。对于在更改 ISP 之前忘记在他们注册的所有网站中更新电子邮件的用户来说,单独链接到电子邮件可能会很困难。

反而:

您应该考虑允许用户提供多个地址以及用户选择的 id,然后让用户决定他们想要做什么。或许还可以考虑允许用户提供一个 OpenID 帐户。

于 2009-03-15T03:20:13.157 回答
3

您可能需要考虑的一种设置:同时拥有用户名和电子邮件。电子邮件用于登录并始终保密,用户名用于在任何公共交互中识别用户,例如发表评论。由于用户登录凭据的两半都是私密的,因此它最终会稍微安全一些,而如果您同时使用用户名进行登录和公共标识,则登录的一半是已知的。

我绝对同意您的观点,即在大多数情况下注册最少,但根据您所做的事情,您可能希望在这与为您的用户增加安全性之间取得平衡。四个字段对于注册来说并不过分(用户名、电子邮件、密码、确认密码),如果您特别喜欢冒险,可以通过删除确认密码字段将其减少到三个,或者通过电子邮件发送密码将其减少到两个他们以后可以改变。

于 2009-03-17T17:38:42.717 回答
2

专业版

人们讨厌必须创建一个适合他们的 id 并且尚未用于注册站点的唯一名称。这就是为什么用户 id 作为EMAIL ADDRESS如此受欢迎的原因。

ex :TSamper1930,谁真的想在我真正想要的名字末尾记住 1930

于 2009-03-15T02:53:43.220 回答
2

缺点:如果黑客可以尝试大量注册随机电子邮件地址,他或她将能够根据哪些注册失败来确定哪些地址是有效的。这是一种可用于汇总已知有效电子邮件地址列表的策略,这些地址是垃圾邮件黑市上的热门商品。

虽然现在我想起来了,这是一个影响任何在注册过程中要求提供电子邮件地址的网站的问题,无论是否有单独的用户名。但这仍然是值得考虑的事情。

于 2009-03-15T03:13:02.957 回答
2

CON:如果我更改我的电子邮件地址,突然我所有的帐户名称都无效。我的名字没有改变,但我的电子邮件经常改变。几年后我偶尔会重新访问一个网站,但被卡住了......两年前我的电子邮件地址是什么?

于 2009-03-15T03:15:43.557 回答
2

坚持使用它们无处不在的电子邮件地址,实际上大多数主要网站都使用它们,它们是独一无二的,因此它们使用户免于寻找不被其他人使用的名称,用户也不会忘记他们的电子邮件地址(在大多数情况下)至少是:)),这与用户名不同,如果他们不经常访问您的网站,他们会不断忘记。

您不必担心它们太长,因为所有主要浏览器(IE、FF .. 等)都为默认启用的表单提供自动完成功能,因此您输入电子邮件中的第一个字母并获得一个下拉列表(即自动完成列表)您只需单击即可输入整个电子邮件,就个人而言,我几乎从不完整输入电子邮件地址,我总是输入第一个字母,然后从自动完成下拉列表中选择电子邮件。此外,如果您允许记住用户(使用记住我复选框和持久性 cookie),这将是另一个不用担心的理由。

我不了解您的应用程序,但通常在大多数应用程序中不希望拥有多个帐户的用户。

于 2009-03-15T03:59:31.800 回答
1

一个缺点可能是,如果它是一个电子邮件地址,则人们可以猜到登录名并尝试进行暴力攻击。这并不是一个真正的大问题,因为在今天的大多数网站上,登录都是公开显示的。

最大的优点是登录更容易记住这种方式。

于 2009-03-15T02:50:01.310 回答
1

一个好的设置是要求用户名和电子邮件。允许用户使用电子邮件地址或用户名登录是非常用户友好的。另一个好处是用户可以更改他们的电子邮件地址。它还允许一封电子邮件有多个帐户。

于 2009-03-15T03:45:48.540 回答
1

解决您的电子邮件的骗局项目太长而无法每次输入。我已经实现了 StringScan Ruby 库。

require 'strscan'    
def signup!(user, &block)    
self.email = user[:email] unless user[:email].blank?    
str = StringScanner.new(self.email)    
str.scan_until(/@/)    
str.pre_match    
self.login = str.pre_match

ETC..

然后只需更改登录方法以允许电子邮件或登录名匹配密码。

这就像 google 或 mobileme 一样。用户可以选择只输入他们的电子邮件用户名(即用户名而不是 username@gmail.com。)

于 2010-01-30T14:35:49.273 回答
0

如果您不关心强迫您的用户使用 Facebook 或其他社交网络登录您的应用程序(大多数人似乎并不关心),那么您可以在引用时使用他们的社交网络电子邮件作为他们的“用户 ID”其他表/文档(MySQL、Mongo 等)。

我注意到使用社交媒体登录的好处是,所有的安全性都由所述社交网络负责,包括不允许 2 个用户在他们的数据库中拥有相同的电子邮件或用户名,从而省去了编码的麻烦所有这一切。这只是我个人的喜好。

于 2016-05-02T17:18:40.910 回答