12

我在网上看到的大多数示例都按以下顺序创建用户帐户:用户访问站点,他们选择用户名和密码并输入他们的电子邮件。发送到此电子邮件的确认电子邮件,如果他们单击链接,则该帐户将获得“验证”。如果他们不验证,则该帐户会在一段时间后被删除。

有人告诉我另一种方法:让用户先验证电子邮件,然后当他们单击电子邮件中的验证链接时,他们可以开始创建用户名和密码。

有没有人看到第二种方式有任何问题,无论是安全问题还是其他问题?这并不常见,我个人也找不到一个完全明显的问题,但我更喜欢只有在很多人确认他们也没有看到问题或漏洞之后才使用它。

4

12 回答 12

15

就我个人而言,我确实看到了一个可能给用户带来不便的问题:

当大多数人在网站上注册时,他们希望他们必须回答很多问题,花一些时间阅读常见问题解答和服务条款,然后花更多时间设置他们个人资料的一些初步方面。

传统流程允许用户选择完成该过程的时间。之后,用户只收到一个验证链接,这通常是一个 3 秒的使用过程,几乎可以随时完成。

您提议的流程迫使您网站的潜在用户花时间阅读您的文档,然后等到他们收到消息,然后再找一些时间(可能在几天后)填写表格。一方面,我会发现这至少有点烦人——如果不是完全令人沮丧的话——尤其是如果邮件需要很长时间才能到达,因为它通常会这样做。

我也不喜欢这种方案的内在含义:

  • 传统流程:“哦,太好了,您填写了我们的表格,只需给我们一个地址即可向您发送适当的验证”。这里的用户只是在等待完成本质上已经完成的交易。

  • 邮件优先流程:“哦,是。好吧,等一下,如果我们需要你,我们会向你发送邀请”。另一方面,在这里,用户在收到您的消息之前一直处于潜意识不确定的边缘。

我相信第一种方法对用户来说更加开放和友好。这也是这些情况的当前标准流程,这应该足以激励自己使用 - 您应该避免强迫用户进入他们不习惯的流程,除非没有其他方法。

于 2011-02-21T11:38:54.847 回答
4

从朋友那里收到一封包含访问网站的邀请链接的电子邮件是令人兴奋的——它感觉独特、新颖且有趣。我得到了一些东西 - 所以我很高兴注册。

需要输入电子邮件地址才能开始使用网站,这让人感觉很严厉、限制性和烦人。我被要求放弃一些东西作为第一步,然后可能(也许?)在路上得到一些有价值的东西。

这不合逻辑 - 在这两种情况下,必须先验证我的电子邮件地址,然后才能创建帐户。事实上,第一种情况需要我的朋友主动向我发送我从未请求过的提议。

你知道我为什么首先创建这个 StackOverflow 帐户吗?因为当我想提供答案时,我可以点击登录页面上的 Google 徽标并立即开始使用该网站。没有用户名、密码、名字、姓氏、出生日期或其他 BS

你知道为什么我从来没有创建过专家交流帐户吗?因为第一次尝试访问答案时,系统提示我输入信用卡号、帐单地址和电话号码。在我甚至可以品尝该网站所提供的东西之前,我不得不放弃一些东西。

关键是:进入壁垒让你的网站很烂。帐户创建应尽可能无缝且轻松。在填写单页注册表单和验证码后能够立即访问网站非常棒,即使在完成电子邮件验证之前对其他功能的访问受到限制。如果解锁更多功能,我什至会告诉你我的 DOB 和最喜欢的颜色。

于 2011-02-25T09:25:47.303 回答
3

那么您允许在电子邮件中使用链接发送多少次?

如果只有一次,如果在选择用户名之前关闭浏览器,用户将无法创建帐户。

如果多次,很多人可以使用相同的链接创建帐户。发布此链接并使用密码恢复功能可能是不错的网络钓鱼技巧。

如果您在数据库中检查此电子邮件并仅允许一次,则用户将无法创建两个合法帐户。

于 2011-02-15T15:52:53.453 回答
3

就我个人而言,我认为它没有问题 - 这是一个选择问题。我认为关键点是让用户清楚他们必须

1) 输入他们的电子邮件地址 2) 等待确认电子邮件,然后才能进入第 3 步 3) 注册帐户。

如果用户只需输入一条信息(他们的电子邮件地址),然后填写您需要的其余信息,它可能会消除用户持有的数据量和投入的时间。

就个人而言,我会保持它的标准,这样用户就不会感到困惑。工作量是相同的 - 获取用户名/密码/电子邮件地址 - 等待用户单击链接,然后才能登录您的站点。

于 2011-02-15T15:36:34.200 回答
2

我可以看到这种方法稍微简单一些——当用户点击他们电子邮件中的验证链接时,你将他们发送到一个插入了隐藏的预先生成的 ID 号的表单,然后为其分配一个用户名和密码。空白帐户,只有 id 和没有其他信息,很容易定期过滤掉,在成功创建帐户之前,您不会存储任何详细信息。

然而,大多数网站在电子邮件之前收集用户名和密码可能是有原因的——在您要求更多个人信息之前,您已经获得了用户的投资。帐户已创建 - 现在只需验证您的电子邮件。反之,首先要求提供电子邮件地址,然后要求提供帐户——即使在功能上是相同的,但在感知上却不是。此外,标准“流程”的优势在于用户知道会发生什么 - 遵循约定意味着用户感觉他们知道正在发生的事情并且不会感到困惑或失去兴趣。

于 2011-02-15T15:41:02.503 回答
0

根据我的经验,最好记录尝试注册到网站的用户。

问题是用户通常不会收到确认电子邮件。

发生这种情况时,他们经常忘记该站点并且不再回来。

我要做的是在一段时间后重试发送确认电子邮件,比如一周。他们通常会收到第二封电子邮件,而您最终会恢复注册用户,否则会丢失。

事实上,我每周重试发送一次确认电子邮件,直到用户确认或自注册尝试起已过去 30 天。

即使用户在 30 天后不确认,我也不会删除该帐户。用户经常回来尝试再次注册。然后我再次向他发送帐户确认信息,并鼓励用户在没有再次收到该信息时联系该网站。

所有这些都是为了最大限度地恢复注册用户的机会,否则可能会丢失。

于 2011-02-25T03:06:05.980 回答
0

我想分享一些关于第二种方法的想法。

首先,它和邀请系统很像,但又不一样。

  1. 您必须允许为一个电子邮件地址发送多个注册请求。如果您不这样做 - 潜在用户可能会意外删除它,并且无法重复该过程。如果您确实允许一些愤怒的家伙可能会将其用作垃圾邮件工具(向一个(甚至更多)电子邮件地址发送尽可能多的邮件。想象一下您的公司/网站将如何寻找收到 10k 注册请求的人。 ..

  2. 标准方式有一个重要的优势:它允许在不确认电子邮件的情况下保留用户名(用户可能想注册,但不想或无权访问电子邮件服务器/帐户)。

  3. 您必须考虑到您的服务器可能会延迟很长时间的电子邮件发送。可能的原因:内存不足、DoS 攻击、电子邮件服务器故障等。如果您选择邮件优先方法并且用户在 5 分钟内未收到该邮件(出于任何原因),则 4 个潜在用户中有 3 个将向您的公司/站点学习并且永远不会完成注册。

它被称为标准方式是有原因的,因为它考虑了很多小细节。

于 2011-02-22T06:15:39.730 回答
0

两种方法都可以——但如果你要推迟创建帐户,那么你将不得不将所有必需的详细信息嵌入到 URL 中——到期日期、用户名、密码和电子邮件地址,然后将其全部加密以防止篡改 - 这使得它相当大。

实际上——你不能允许人们选择他们自己的用户名——因为你无法检查用户名是否之前已经被请求过并且没有被验证。如果您要发布用户名,那么您将因此发布电子邮件地址......不是一个好主意吗?

于 2011-02-22T16:49:26.060 回答
0

这是我对这种方法的担忧。

无法保证电子邮件交付,并且可能很慢。如果用户没有立即收到电子邮件,他们可能无法完成注册过程。如果他们输入错误的电子邮件地址或电子邮件被标记为垃圾邮件怎么办?

于 2011-02-24T23:34:17.383 回答
0

归根结底是为用户提供便利。如果他们检查电子邮件的唯一原因是验证帐户,那么这似乎是一种不便。而是让系统为他们生成密码,通过电子邮件发送给他们,并指示他们检查电子邮件以获取密码。如果他们愿意,您可以允许他们在登录后更改密码。此方法还有助于确保最初存在“强”密码。

于 2011-02-28T04:28:38.840 回答
0

我会建议第二种选择。让用户通过单击电子邮件中的链接来验证自己。然后他们可以选择他们喜欢的用户名和密码。我希望用户名在站点中是唯一的。

在某些用户长时间忘记验证电子邮件中的链接而导致用户名被锁定的情况下,这将很有帮助。其他人无法选择这些用户名(直到稍后删除该记录)。这也可以消除垃圾邮件发送者选择自己的用户名并将其锁定以供他人使用。

因此,我建议使用第二种选择。让用户在选择用户名并将其锁定以供他人使用之前,首先验证他的电子邮件和他的存在。

于 2011-02-25T09:56:56.657 回答
0

实际上有一些网站可以做到这一点。

  • 你输入你的邮件
  • 您会收到一封带有初始密码和验证链接的验证邮件
  • 单击链接后,您的帐户就处于活动状态,您将被定向到包含其他详细信息(全名等)的表单,但您可以跳过它们并在以后的任何时间填写它们。

这个最小的注册过程将帮助您避免潜在客户的流失,他们不想在真正需要之前填写许多表格并提供数据。

于 2011-02-27T23:07:04.030 回答