使用电子邮件地址作为用户ID的利弊是什么?


69

我正在创建一个需要注册/身份验证的Web应用程序,并且正在考虑将电子邮件地址用作唯一的用户ID。这是我认为的利弊(已更新响应):

优点

  1. 在注册过程中要填写的一栏要少一些(只是电子邮件地址,密码和验证密码)。我是简约注册的忠实拥护者。

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

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

缺点

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

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

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

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

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

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

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

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

另一个选择是实现OpenID(这是另一场辩论)。

这似乎适用于Google,但它们的服务紧密集成。我在分析中错过了什么?你有什么建议?有没有人可以分享经验?

最终编辑

谢谢大家的答复。我已经决定使用电子邮件作为id,但是允许在注册后创建用于登录目的的用户名。这样可以在保持注册尽可能短的同时提供一点灵活性。它还可以防止用户更改电子邮件地址时出现问题(他们只能使用其用户名登录并进行更新)。我还将实现一些方法,以防止将电子邮件地址强行从注册和登录系统中删除(主要是反复尝试后的冷静期)。


1
您的第一个PRO并非在每种情况下都是正确的,因为您的用户仍需要用户名才能在您的网站上发布内容。
桑多·戴维哈兹

您应该使用答案中的pro / con简短列表来编辑问题。
劳伦斯·多尔

@vamin:如果答案对您有帮助,请接受。谢谢
米奇·

或者,您只能显示“ ID /密码组合不正确。请重试或重置密码。” 无论使用哪种方法,请记住在蜘蛛的“重置密码”页面中也使用一些对策。
Francisco Presencia,2012年

Answers:


4

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

挑战:

某些用户会被诱惑使用其ISP提供的电子邮件地址。对于那些在更改ISP之前忘记在已注册的所有网站中更新电子邮件的用户而言,仅链接到电子邮件可能会很困难。

代替:

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


31

就个人而言,我更喜欢仅使用我的电子邮件地址作为用户名。这是一件值得记住的事情,而且我不必担心我的首选名字已经被使用。

只是我的2美分!


26

我认为您错过了专业人士:

用户可能会记住他们的电子邮件地址;由于电子邮件地址是唯一的,因此他们不必担心自己的首选用户名已被使用。


12

缺点

  1. 如果电子邮件帐户使用相同的密码,则自动破坏一个就意味着破坏另一个。

这是一个需要提出的问题。每个人都应为其电子邮件帐户使用唯一的密码。
公元前。

1
他们应该,但是不应该。悲伤但真实。
Thomas Thomas

1
使用此方法不是问题。这对用户来说是个问题。所以我不认为这是一个弊端。
卡多

如果您的电子邮件密码遭到泄露,那么您将面临很多麻烦,这就是您的问题,而不是我的(以使用电子邮件进行登录的网站的管理员身份)。
核心

2
每当电子邮件与帐户相关联时,不仅在使用电子邮件作为登录名时,通常都是这样。如果您控制注册帐户的电子邮件,则大多数服务都提供了一种重置密码的方法。
亨克

11

作为网站的用户,我可以告诉您,我讨厌记住不必要的用户名。我没有使用唯一的手柄或任何东西,所以我永远也记不起我使用过的我名字的哪个变体尚未被使用。我宁愿输入我的电子邮件地址。

另外,我喜欢OpenID。


12
您是网站的用户吗?;)
核心

我的用户名比电子邮件地址少。
Sentinel

11

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

很难学到这一点。


显然,您的答案与电子商务网站有关,对于大多数其他网站,您通常要求用户通过在其电子邮件地址向他们发送带有激活帐户链接的消息来验证或确认其帐户,最底端需要一个电子邮件地址无论如何
Waleed Eissa

2
我们经营一个电子商务网站,我们使用电话通过<< phonenumber >> @ << ourdomain >>向人们注册。99,9%的人有一封电子邮件,因此这不是我们必须要做的,但是它可以工作。
2012年

3

您可能要考虑的一种设置:同时具有用户名和电子邮件。该电子邮件用于登录,并且始终保持私有状态,用户名用于在任何公共交互(例如发布评论)中标识用户。最后,由于两半用户登录凭据都保持私有状态,因此安全性稍高一些,但是如果您同时使用用户名进行登录和公共标识,则已知一半登录。

对于大多数情况下的最少注册,我绝对同意,但是根据您的操作,可能需要在增加用户安全性的同时进行权衡。四个字段对于注册而言并不令人讨厌(用户名,电子邮件,密码,确认密码),如果您特别喜欢冒险,可以通过删除确认密码字段将其缩减为三个,或者通过向他们发送密码将其缩减为三个他们可以稍后更改。


1
我认为您所指的用户名通常称为显示名称
KajMagnus

2

专业版

人们讨厌不得不创建一个适合其ID的唯一名称,并且尚未将其用于注册网站。因此这就是为什么如此使用用户ID作为EMAIL ADDRESS的原因。

例如:TStamper1930,他实际上想记住我真正想要的1930年


2

缺点:如果黑客可以尝试整体注册随机电子邮件地址,则他或她将能够基于哪些注册失败而找出其中哪些地址有效。这是一种可用于组合已知有效电子邮件地址列表的策略,这些列表是垃圾邮件黑市上的热门商品。

尽管现在我已经考虑过了,但是这个问题会影响到任何在注册过程中要求输入电子邮件地址的网站,无论是否有单独的用户名。但这仍然值得思考。


3
可能应该建立一个网站来检测这种恶意尝试并将其列入黑名单。
卡多

1
同一个人可以尝试发送到随机地址(您说他们仍然会生成该地址),然后查看哪些地址可以发送,哪些地址不能发送。这比尝试浏览网站要容易得多。
Fred Nurk 2010年

1
您的网站永远不要让用户知道电子邮件是否已经注册。
Tommy

@Tommy这是一个好主意。如果有人尝试使用已经使用的电子邮件地址进行注册,则Web服务可以简单地回答“谢谢。向...发送了确认电子邮件”。然后,在确认电子邮件中,可能会出现一条消息:“您已经在我们这里拥有一个帐户。如果您忘记了密码,...” –哦,我刚刚注意到这正是我的第三方身份验证库的方式正在使用作品:-)
KajMagnus

2

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


我已经使用了七年了,而现在我拥有的主要电子邮件地址已经有十多年了。我想我处于极端状态,但是人们真的经常改变他们的生活方式吗?
弗雷德·纽克

@Fred:是的,直到我获得自己的域名,我的电子邮件才与我的互联网提供商绑定(我不喜欢HotMail之类的服务),因此多年来,随着提供商从拨号到DSL到WiFi的改变,它发生了多次变化。
劳伦斯·多尔

我仍然不认为大多数用户经常会更改电子邮件。但我在此CON上看到一点:如果是这种情况,则您没有其他登录名。但是,如果我错了,请改正我,即使您使用的是用户名(而不是密码),而您忘记了密码,该密码检索链接也会发送到您的电子邮件(已有两年之久)。而且您仍然无法登录。因此,据我认为,似乎您的帖子的问题可以在两种情况下都适用,最重要的是:“如果您丢失了电子邮件或忘记了电子邮件,则无论网站上是否存在登录问题,登录系统”。
MEM 2014年

2

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

您不必担心它们的时间太长,因为所有主流浏览器(IE,FF等)都可以自动填写默认启用的表单,因此您在电子邮件中输入前几个字母并会看到一个下拉列表(即自动填充列表),您只需单击以输入整个电子邮件,就我个人而言,我几乎从不输入完整的电子邮件地址,我总是键入首字母,然后从自动填充下拉列表中选择电子邮件。此外,如果您允许用户被记住(使用“记住我”复选框和永久cookie),这是不用担心的另一个原因。

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


1

一个缺点可能是,如果这是一个电子邮件地址,那么人们可能会猜中该登录名,并且会尝试进行暴力攻击。这并不是什么大问题,因为当今大多数网站上的登录信息都是公开显示的。

最大的优点是登录更容易记住。


1

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


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

等等..

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

这项工作就像google或mobileme。用户可以选择只输入其电子邮件用户名(即,用户名而不是username@gmail.com)。


0

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

我注意到使用社交媒体登录的好处是,上述社交网络已经处理了所有安全问题,包括不允许2个用户在其数据库中使用相同的电子邮件或用户名,从而避免了编写代码的麻烦对于所有这些。这只是我个人的喜好。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.