注册登录的设计:基于33款APP的注册登录分析(一)

25 评论 27049 浏览 315 收藏 26 分钟

作者为解答自己关于注册登录设计的疑惑:“注册登录流程基于不同行业、不同类型、不同的安全要求,是否存在最优的设计方案?”,对33款APP进行7个维度的对比分析。本文主要从注册路径的选择、注册流程的设计、注册内容的注意方面给出了总结建议。

写这篇文章,主要是想解答自己内心的疑惑:注册登录流程基于不同行业、不同类型、不同的安全要求,是否存在最优的设计方案?

在过往2年多,独立设计了几款产品,但对于注册登录流程,一直没有深入研究,心存疑虑。趁着最近的空闲,分析了33款APP的注册登录之后,这篇文章诞生了。

我将33款APP分为了以下7个维度进行对比分析,这一篇主要讲了3和4,剩下的内容,会在后续的文章中进行说明。

本文目录

  • 33款APP说明
  • 为什么需要注册
  • 注册是否必须
  • 注册应该如何设计
  • 注册的内容

一、33款APP说明

这次选择了医疗、互金、记账、内容、电商、社交等领域相对头部的33款APP进行对比分析。

头部产品坐拥大量的用户数据,所做优化有大量数据作为支撑,分析这类产品,可以为产品优化提供很大参考。互金选择比较多,主要考虑这类产品对账号安全会有较高要求。

二、为什么需要注册

早期的网站,很多都是无需注册的,比如使用百度搜索、浏览黄页…

随着互联网的发展,用户对应用提出了更多的个性化需求,开发者需要分用户记录数据…

于是,账号系统的必要性越来越明显。

三、注册是否必须

注册是为了创建账号系统来分账号保存用户数据,然而并不是所有的应用都有这个必要性。

因此,我从这一维度将注册分为:无需注册型、需要注册型。

1. 无需注册型

例如一些纯工具类的应用,比如计算器、闹钟、天气等应用,如果不需要区分用户进行数据记录和分析,则可以不注册。

2. 需要注册型

有注册才能建立账号系统,才能准确区分用户,进行数据收集和分析,才能积累有效数据提升产品价值,为后期的产品优化提供数据支撑……因此,对于大多数应用而言,注册的存在是非常有必要的。

四、注册应该如何设计

撇去权限获取、注册协议(后续文章会写),注册设计主要包括注册的路径设计、流程、内容设计。

1. 注册的路径

注册路径,是指用户从打开APP后,到达注册的路线:是用户进入APP就要注册,还是看了部分内容、做了某些操作时再进行注册?

基于此,将注册的路径分为两类(图示以安装后首次使用为例):

立即注册:即进入APP后,必须完成注册,否则无法看到应用的内容。

延后注册:无需注册就可以体验产品的部分功能,在触发某些功能时才要求注册。

延后注册有两种比较常见的设计方式:启动/引导页直接进入首页,或者在启动/引导页之后设计一个可跳过的注册/登录页再进入首页。

33款APP的分析结果如图,只有4款APP采用了立即注册型,分别是:支付宝、蚂蚁财富、微信、陌陌。

立即注册,就像让用户在不知道东西长什么样的情况下,就让他们掏钱买单,设想一下有多少人愿意?

除非,这东西不用看就知道什么样,所以可以看到,33款产品里,支付宝、微信、陌陌这么做了(就是这么牛),而蚂蚁财富因为功能在支付宝都有,所以下载使用的都是精准用户,采用立即注册也没毛病。

立即注册的产品里,有两类比较特殊的:申请注册(如大多数To B产品,需要提交资料审核通过后才可开通账号,如初期的bilibili,需要回答大量问题之后才能申请注册)、邀请注册(必须填写邀请码才可完成注册,如每日一淘),这类产品因为产品阶段、用户特性、商业模式等原因,而选择了比较特殊的注册方式。

所以分析后认为,除非产品知名度已经相当牛逼,否则还是尽量让用户“先试用再买单”吧,何况微博依然是延后注册。

特别说明:在本次调研中发现,有7款产品(微医、京东金融、壹钱包、今日头条、京东、淘宝、微博)在启用/引导页之后专门给出了《用户隐私政策》说明页,1款产品(支付宝)在用户输入手机验证码后给出了此页面,应该是为了符合《网络安全法》的相关规定。

《中国人民共和国网络安全法》第四十一条网络运营者收集、使用个人信息,应当遵循合法、正当、必要的原则,公开收集、使用规则,明示收集、使用信息的目的、方式和范围,并经被收集者同意。网络运营者不得收集与其提供的服务无关的个人信息,不得违反法律、行政法规的规定和双方的约定收集、使用个人信息,并应当依照法律、行政法规的规定和与用户的约定,处理其保存的个人信息。

2. 注册的流程

注册的流程,是指用户在进行注册时的操作流程,可分为:分步注册和非分步注册。

非分步注册:

指注册所需的内容在一页(一步)内完成,比如完成注册需要用户填写手机号、短信验证码、密码,而将这些内容设计在一页内,点击提交即完成注册,这类视为非分步注册。

分步注册:

与非分布注册对应,即注册所需的内容需要好几个页面来完成。比如完成注册需要手机号、短信验证码、密码,然后分别放在3个页面,用户通过点击下一步来完成,即视为分步注册。

本次统计结果如图,分步注册占大多数,为79%。

据称,Facebook曾针对分步注册与非分步注册做过A/B Test,结论是分步注册的转化率远高于非分步注册。不过Facebook属于社交类产品,注册流程中必须录入的内容较多,除了手机号,通常还需要昵称、性别等个人信息,分步注册确实是更好的选择,比如这次样本中的社交产品:陌陌、最右、微博都采用了分步注册。

但是,对于其他类型的产品,分步注册的提升效果,可能并不会“远高于”,特别是现在大多数产品都采用延后注册,用户选择注册时,已经对产品有了认可,这时会更有耐心去完成注册。

当然,分步注册的好处确实显而易见,可以将必须字段和非必须字段分页设计,非必须字段的页面可以跳过,可以减少单页面的内容,降低用户的感官压力…因为页面的填写内容更少,所以可以展现更多其他辅助内容,可以设计的更简洁大气…

但过多的分页,也会给用户一种“怎么没完没了”的感觉,所以产品经理需要根据实际情况对注册字段进行分拆和组合,合理的进行分步设计。

五、注册的内容

注册的内容,指用户注册时需要填写的内容,常见的内容有:手机号、短信验证码、登录密码等,接下来会一一进行说明。

1. 邮箱

在PC时代,邮箱是最主流的用户注册信息,因为符合当时的用户使用场景。但随着移动互联网的发展,移动应用几乎均使用手机注册,毕竟注册一款移动产品,还需要打开手机邮箱,或者用电脑打开邮箱,对于用户体验是不友好的。当然,某些移动应用由于海外用户等因素,依然支持邮箱注册。

在本次调研中,只有随手记支持邮箱注册。

2. 手机号码

手机号码作为现在最常用的用户注册身份信息,主要是因为手机号本身的特性: 唯一性、真实性(实名认证)、可联络,符合了移动互联网的使用场景和需求。手机号不仅可以确认用户身份,还可以在必要时联系用户、通过通讯录导入社交关系等。

不过,手机号码属于用户比较敏感的信息,多少都会有些介意。好消息是,根据《网络安全法》相关规定,开发者可以以此为由,要求用户绑定手机号。

《中国人民共和国网络安全法》第二十四条 网络运营者为用户办理网络接入、域名注册服务,办理固定电话、移动电话等入网手续,或者为用户提供信息发布、即时通讯等服务,在与用户签订协议或者确认提供服务时,应当要求用户提供真实身份信息。用户不提供真实身份信息的,网络运营者不得为其提供相关服务。

在本次调研中,所有APP均支持手机注册。

3. 防刷安全验证

一般是为了防机刷而存在的,如图形验证码、滑块验证、箭头路线验证、google人机身份验证等,这些验证也是可以破解的,而越难破解的防机刷验证,用户的操作成本也越大。所以,一般在非必要情况下,会优先采用系统限制来规避类似风险。

比如:设置60秒的短信验证码发送间隔、对同一IP或者同一手机设备设置每日短信验证码下发上限等。目前也有聚合类的移动安全产品可以选择,从更多维度通过大数据分析进行风险规避,比如阿里聚安全。

在本次调研中,注册时获取验证码需要人机验证的有:京东、京东金融、人人贷理财、分期乐、小米贷款和微信6款产品,占整体样本的18%。

4. 短信验证码

短信验证码可以确认用户注册手机号的真实性、归属性、可用性,防止无效注册,同时可以便捷的帮助用户进行密码找回、修改密码等操作。但是,短信验证码也存在一些弊端。

比如可能出现延迟,甚至用户无法接收到的情况,所以部分产品会附加语音验证码、上行验证码来解决这一问题。上行验证码,即APP会给到用户一串随机码,要求其发送到某个指定的号码,微信的注册就是采用这一方式。

4位和6位验证码,有什么差别?

APP在注册、登录、找回密码环节的短信设置或有差异,以下数据均基于注册时接收到的短信内说明的有效期:

分析可以看到,选择6位验证码的产品还是大多数。但是基于我个人的分析和了解,只要结合验证码有效期、手机号单位时间内可以进行短信验证码的次数上限,4位验证码和6位验证码在安全系数上,没有太大差异,反而4位验证码会减少用户的输入成本。如支付宝、今日头条、抖音都选择了4位验证码。

5分钟和30分钟有效期,有什么差别?

上图是短信验证码有效期的分析结果,未说明就是指在验证码短信中 ,没有说明有效期是多久,这部分占比最多,为49%;其次是5-10分钟,占33%。不同时长并没有特别的行业特性,比如互金类的,2分钟、5分钟、10分钟、30分钟都有。

结合用户的实际使用场景,对于用户而言,说明时长的意义确实不大,毕竟正常用户用自己手机操作的话,都是一气呵成,不会关心有效期,也不需要太长的有效期。

因此,是否说明,对真实正常的用户来说并不重要(比如我一般都不看有效期,看到验证码就输入了)。

不过,不论说明与否,2分钟确实太短,稍微走一个神可能就过期了。而太长的有效期,就增加了验证码泄露的风险。因此,结合场景与分析结果,认为5-10分钟会是比较普适(普遍场景都比较适合)的区间。

当然,短信验证码也可以有更精细的设定,根据不同的场景业务,结合不同的安全需要,可以设置不同的有效时长和验证方式。

比如微博的注册验证码,有效期说明为30分钟,登录验证码的有效期未说明,修改密码时需要上行验证码,找回密码的验证码有效期说明为5分钟。

通过对微博验证码深入分析后发现:

  • 获取微博的登录验证码并使用后,退出登录,再次获取登录验证码,如果上一次登录时获取的验证码还在有效期,那么仍会发送上一次已经使用过的验证码;
  • 微博找回密码的验证码虽然说明有效期是5分钟,但是在7分钟后重新获取时,还是得到了一样的验证码。当然,不排除在短信中写更短的有效期,是为了让用户尽快完成操作这一可能。

设定好短信验证码的验证规则,才能更好规避机刷及安全风险,常见的规则如下:

  • 短信验证码发送间隔不低于X秒(目前普遍为60秒),用户端有相应展示
  • 同一业务,单位时间内(如1小时/1天/…),对同一手机号/手机设备下发次数不超过X次
  • 同一短信通道,单位时间内(如1小时/1天/…),对同一手机号/手机设备下发次数不超过X次
  • 超过下发限制时,可改为上行验证
  • 同一手机号,单位时间内(如1小时/1天/…),进行同一业务的短信验证,错误次数不可超过X次

根据不同的场景业务,结合不同的安全需要,可以设置不同的次数限制。

这里提一个手机针对短信验证码的安全处理,就是在锁屏状态下,收到短信验证信息时,短信验证码显示为****。

不然,只要拿到用户的手机并知道手机号码,就算无法进入手机,也可以完成注册了。

5. 登录密码

先来思考一个问题,登录密码是必须的吗?

登录密码存在的意义,是为了验证用户的身份,确认是该账号的真实持有者在进行登录操作,防止账号被他人盗用。

验证用户身份的方式,从过去就不止一种。比如PC时期的邮箱验证,但是每次登录都进行邮箱验证,对用户来说太麻烦了,登录密码是属于比较便捷的方式。但发展到移动产品,获取短信验证码的便捷程度,与输入登录密码可以说不相上下(抛开可能的延迟)。

就功能性来说,登录密码已经可以被微信授权和短信验证所取代。

微信(第三方)这类产品本身就有很强大的安全机制,为接入授权的产品提供了前置的安全保证,同时微信授权几乎不会有延迟,而且免费。短信验证码虽然有一点的费用,还可能出现延迟,但对于无法/不愿接入微信登录的产品,是退而求其次的选择。

如果无法接入微信等第三方授权登录,那么登录密码的设置,会是对短信验证码延迟问题的一个补充解决方案。

上图是注册时是否需要设置登录密码的分析结果,其中需要设置密码的有9款都是互金类的,互金类由于均没有接入微信登录(国家/公司政策的原因),因此登录密码会是对验证码登录的补充。

结合结果可以认为,登录密码并不是必须的。密码的保留,更多是出于经济的考虑,以及用户行为习惯的延续,同时可以作为短信验证延迟等问题的补充方案。

然而,随着黑客技术与计算机处理能力的不断提高,过于简单的密码,很容易就可破解,所以设置密码的限制要求越来越高,因此,用户输入和记忆成本也越来越大,导致大家更愿意使用同一个密码,这样又增加了密码的不安全性。(进一步了解可搜索关键字:撞库攻击、彩虹表)

所以,要么别设置密码,要么设置一个安全的密码,且尽量避免所有应用使用同样的密码。

如果要设置密码,怎么样才够安全呢?

要了解怎么样的密码“够安全”,就需要了解密码的加密机制。开发者一般通过Hash加密来保证用户密码在传输和存储过程中的安全,也就是用户输入的密码,并不是以明文密码的形式(密码原文)进行传输和存储的,而是通过Hash加密后的十六进制的随机字符串。

由于Hash算法的不可逆性,因此就算数据库中保存的用户“密码”失窃,不法分子也很难破解出密码原文。但由于黑客技术以及计算机处理能力的提升,部分过去安全的加密算法,也变得不再安全,对于过于简单的密码,在很短时间就可以被破解。

因此,为了增加密码被破解的难度,密码的位数越来越长、密码的复杂度也越来越大,所以现在大多数密码都要求8-16位,必须包含数字和字母,甚至标点符号。所以,并没有绝对安全的密码,只有在现阶段相对安全的密码,而且还要看开发者的安全措施是否到位。

相对安全的密码规则,可以参考平安一账通、京东的设置规则:

京东的密码设置规则:

  • 6-20位字母、数字或半角符号组成
  • 不能是10位以下纯数字/字母/半角符号
  • 字母需区分大小写

平安一账通的密码设置规则:

  • 8-20位,数字、大小写组合,不可连续4位相同
  • 建议不要使用手机号、证件号、生日
  • 建议定期修改

对于密码,如果不需要,就不用强求用户设置,因为目前大多数APP都会一直保留登录状态,除非用户主动退出,那么登录密码是一个使用频次很低的字段,但是却需要花大功夫去保护它的安全。如果一定要设置,就要用户设置的安全系数更高一些,不然也就失去了密码的意义,甚至反而增加用户账号被盗用的风险。

当然,对于是否设置密码、设置密码的长度,也要综合考虑用户登录行为在账号安全中所占的比重。

例如:借款类互金产品,在用户注册后,发生借款行为时,还需要大量的安全和信用验证,因此,注册和登录流程是可以简化的。

如果要设置密码,规则说明要清晰准确。

在分析过程中发现,部分APP的说明非常不清晰,导致输入一串密码提交之后,看到错误提示,又要重新输入,甚至有的看到错误提示也是一脸懵逼。

比如京东金融的密码设置说明只有“6-20位”,输入6位纯数字后,却又提示“该密码有被盗风险,请重新设置”,然后,请问用户该怎么做?

还有的说明是:“包含数字、字母或字符”,但是真实需求却是:“至少包含数据、字母或字符中的其中2种”,不准确的描述会让用户无所适从,大大影响用户的注册率。

产品经理在设计登录密码时,要根据产品所处的阶段、所需要的安全级别,和研发充分沟通,设置合理且安全的密码要求。虽然账号安全更多属于研发的工作,但产品经理了解基本原理,才能结合产品,设计更合理的用户注册流程。

6. 其他

不同类型的产品,可能还会有不同的注册内容,比如社交类一般会要求用户设置头像、昵称,互金类往往需要实名认证等,这些都要根据具体产品类型再进行深入分析及设置。当然,不论什么产品,都建议让用户尽快完成注册,然后再在之后的操作中,通过限制操作等引导其完成其他资料的设置。

六、注册设计练习

通过上面的分析,相信大家可以对注册的路径、流程、内容有一个比较全面的了解,但是真正的掌握是需要刻意联系的。建议大家选择某一个/某几个类型的产品,多多练习设计。

 

作者:Arya.阿雅,公众号:aryawang419

本文由 @Arya.阿雅. 原创发布于人人都是产品经理。未经许可,禁止转载

题图来自Unsplash,基于CC0协议

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 一直有个疑问就是注册的时候如果不设置密码,如果用户换手机号了,那么如何登录?

    来自重庆 回复
  2. 真的很棒,感谢作者!

    回复
  3. 有用

    回复
  4. 本系列文章已经写完了,大家可以搜索查看二和三。

    来自广东 回复
  5. 精品

    来自日本 回复
  6. 谢谢 好细致哦 要慢慢看

    来自北京 回复
  7. 短信验证码内部工作流程:
    1.使用random函数随机生成一个验证码,位数可以自己定(一般是4位、6位验证码)
    2.调用短信运营商的接口,并向其发送手机号和验证码数据。
    3.短信运营平台初步审核将信息发送给三大运营商的某一家。
    4.运营商最终审核,将信息发送到用户手机上。(短信接口的参数一般包括:目标手机号,随机验证码(或包含失效时间),平台接口地址,平台口令等;)
    5.网站或app保存接口返回的信息
    6.服务器端会将这些信息保存在会话控制器Session中,作为后期的验证使用。
    7.网站/APP接收用户填写的验证码信息
    8.服务器端判断用户提交的验证码是否与储存在会话控制器Session中的信息一致,如果一致就通过;否则就验证失败。(也可以同时验证信息的失效时间)

    网上搜到的短信验证码机制,和大家分享一下。原文地址:http://www.sohu.com/a/260189258_629246

    来自广东 回复
  8. 写的超棒~感谢

    回复
    1. 谢谢支持~ 😉

      来自广东 回复
  9. 挺细致的,不错不错

    来自北京 回复
    1. 谢谢支持~ 😉

      来自广东 回复
  10. 就算每次获取的验证码都是相同的也是要收短信费用的,不存在省钱不省钱一说,而且有效期内发送相同验证码码的是占大多数的,微信、支付宝、facebook、twitter(找回密码中)等都是这么做的,所以做作者得出结论过于草率【大多数APP,当用户再次获取验证码时,都会发送全新的验证码,但微博不是,比如登录用的验证码,哪怕使用过一次,退出后再次登录,只要刚才那个验证码还在有效期内,再次获取,还是那个验证码……
    微博找回密码的验证码虽然说明有效期是5分钟,但是当我7分钟后重新获取时,还是得到了一样的验证码……当然,不排除在短信中写更短的有效期,是为了让用户尽快完成操作这一可能;
    总之,分析结果是:微博可真会省钱……】

    来自江苏 回复
    1. 在有效期内发送相同的验证码,是可以理解的,只要验证码没有被使用,避免用户产生混淆。但是我在使用过一次验证码之后,再进行相同操作时,又发送给我了,已经使用过的验证码,这个情况,在我分析的应用中,是只有微博这样做的。

      来自广东 回复
    2. “哪怕使用过一次,退出后再次登录,只要刚才那个验证码还在有效期内,再次获取,还是那个验证码……”这句话是重点噢。

      来自广东 回复
    3. 不过“省钱”这个结论不太对,谢谢指出~

      来自广东 回复
    4. 刚测试了一下,微信在登录和找回密码的验证码,确实是在有效期内,哪怕使用过后,也是发送相同的验证码,而且登录和找回密码是通用的一个验证码。想了一下,是会有这样的场景:(假设每次发送验证码,都发送新的验证码)用户点击发送验证码,但是发生了延迟,于是用户选择重新发送后,原来的验证码已经无效,但是此时用户收到了之前的验证码,于是输入了之前已经无效的验证码,这时系统会提示错误,用户又需要再次获取……

      来自广东 回复
    5. 已经提交修改文章,谢谢指出。不过对于这里,我有一个疑问,在有效期内发送相同验证码可以理解,可以避免延迟或者过多的验证码可能导致的用户混淆。但是已经使用过的验证码,还是继续发送,我个人使用感受上会觉得有些奇怪。你怎么看呢?

      来自广东 回复
    6. 其他32款APP是测试了注册流程的验证码,微博因为发现有些不同,所以进一步测试了登录的验证码,发现了这个问题。而微信在注册时,是采用的上行验证,所以没有发现这个问题。这里的结论确实草率了,谢谢指出。

      BTW,【人人】为什么不把评论删除功能开放呢?回复之后不能修改,也不能删除,挺尴尬的。

      来自广东 回复
  11. 讲解的可算是非常详细了,期待(二)! 😉

    来自山东 回复
    1. 谢谢支持~ 😉

      来自广东 回复
  12. 谢谢打赏的朋友,明早的包子钱有了 ❗

    来自广东 回复
  13. 非常干活了

    来自广东 回复
    1. 谢谢支持~ 😉

      来自广东 回复
  14. 学习了 😉

    来自湖北 回复
    1. 谢谢支持~ 😉

      来自广东 回复