Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Email 使用电子邮件地址作为用户id的优缺点是什么?_Email_Authentication_Registration - Fatal编程技术网

Email 使用电子邮件地址作为用户id的优缺点是什么?

Email 使用电子邮件地址作为用户id的优缺点是什么?,email,authentication,registration,Email,Authentication,Registration,我正在创建一个需要注册/身份验证的web应用程序,我正在考虑使用电子邮件地址作为唯一的用户id。以下是我认为的优点和缺点(更新了回复): 专业人士 注册时少填写一个字段(只需填写电子邮件地址、密码和验证密码)。我是极简主义注册的忠实粉丝 电子邮件地址更容易记住。(谢谢) 你不必担心你最喜欢的用户名已经被盗用了——你是唯一一个使用你的电子邮件地址的人。(谢谢) 缺点 用户每次登录时都要输入更多内容 如果用户需要多个帐户怎么办?他们需要另一个电子邮件地址。(我是否希望用户能够创建多个帐户?) 潜在攻

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

专业人士

  • 注册时少填写一个字段(只需填写电子邮件地址、密码和验证密码)。我是极简主义注册的忠实粉丝

  • 电子邮件地址更容易记住。(谢谢)

  • 你不必担心你最喜欢的用户名已经被盗用了——你是唯一一个使用你的电子邮件地址的人。(谢谢)

  • 缺点

  • 用户每次登录时都要输入更多内容

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

  • 潜在攻击者很容易猜到(如果他们知道目标的电子邮件地址,他们就知道登录id)。(谢谢)

  • 用户可能会尝试使用与他们的电子邮件帐户相同的密码,这是不安全的。(谢谢)

  • 如果您经常更改电子邮件地址,可能很难记住您在长时间中断后注册站点时使用的地址。(谢谢)

  • 黑客可以垃圾邮件的登记表,并使用“电子邮件已采取”的回应,以产生一个有效的电子邮件列表。(谢谢)

  • 不是每个人都有电子邮件地址。(谢谢)

  • 如果我使用电子邮件作为id,我将提供一种机制,允许在用户更改地址时对其进行更改。在这种情况下,用户不会向公共站点发布内容,因此不需要单独的用户名来保护电子邮件地址(但这是其他站点需要考虑的事情)。 另一个选择是实现OpenID(这是一个完全不同的争论)

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

    最终编辑


    谢谢大家的回复。我已决定使用电子邮件作为id,但在注册后允许创建用于登录目的的用户名。这允许在尽可能短的注册时间内有一点灵活性。它还可以防止用户更改电子邮件地址时出现问题(他们只需使用用户名登录并更新即可)。我还将实施一些方法,以防止电子邮件地址被强行挤出注册和登录系统(主要是在反复尝试后的一段冷却期)。

    我认为您错过了一个专业:


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

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


    另外,我喜欢OpenID。

    就个人而言,我更喜欢使用我的电子邮件地址作为用户名。记住这件事就少了一件事,而且我从来不用担心我喜欢的名字已经被取了

    就我的2美分

    缺点

  • 当电子邮件帐户使用相同的密码时,泄露一个密码自动意味着泄露另一个密码

  • 一个缺点可能是,如果它是一个电子邮件地址,登录可以猜测的人和暴力攻击企图。这其实不是什么大问题,因为在今天的大多数网站上,登录都是公开的

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

    pro

    人们讨厌创建一个与自己的id相匹配的唯一名称,而这个名称还没有被用于注册网站。这就是为什么像电子邮件地址这样的用户id如此受欢迎的原因


    ex:TStamper1930,谁真的想记住我名字末尾的1930,我真的很想知道

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


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

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

    我倾向于不喜欢赞成/反对列表,而是试着想想好处和挑战

    挑战:

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

    相反:


    你应该考虑允许用户提供多个地址,以及用户选择的ID,然后让用户决定他们希望做什么。也可能考虑允许用户提供OpenID帐户。

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

    坚持使用电子邮件地址,它们在任何地方都会使用,实际上大多数情况下都是如此
    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