注册登录的设计:基于33款APP的注册登录分析
对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分钟。
根据不同的场景业务,结合不同的安全需要,可以设置不同的有效时长和验证方式。
不过通过对微博验证码深入分析,我发现:
- 大多数APP,当用户再次获取验证码时,都会发送全新的验证码,但微博不是,比如登录用的验证码,哪怕使用过一次,退出后再次登录,只要刚才那个验证码还在有效期内,再次获取,还是那个验证码……
- 微博找回密码的验证码虽然说明有效期是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. 其他
不同类型的产品,可能还会有不同的注册内容,比如社交类一般会要求用户设置头像、昵称,互金类往往需要实名认证等,这些都要根据具体产品类型再进行深入分析及设置。当然,不论什么产品,都建议让用户尽快完成注册,然后再在之后的操作中,通过限制操作等引导其完成其他资料的设置。
六、注册设计练习
通过上面的分析,相信大家可以对注册的路径、流程、内容有一个比较全面的了解,但是真正的掌握是需要刻意联系的。建议大家选择某一个/某几个类型的产品,进行模拟设计。
注册登录的设计:基于33款APP的注册登录分析相关推荐
- 基于HTML5设计的几款APP
一 摘要 给大家展示一几款基于HTML5的APP,个人感觉都还做的蛮不错的,接下来给大家一一进行演示一下. 1.<仿淘宝> 2.<阅读> 3.<电影> 4.< ...
- 【iOS设计】一款APP从设计稿到切图过程概述
这篇文章站在GUI设计师的角度概述了APP从项目启动到切片输出的过程,相当于工作流程的介绍.这里写的不是一种规范,只是一种工作方法,加上技术的更新是非常快的,大家在具体工作中,一定要灵活运用. 这里我 ...
- php登录界面模板美化,一款简单好看的登录界面——Typecho美化包 Sign-Page-For-Typecho...
Loading... 一款对Typecho后台登录的美化 首发于 MBRBlog 和 Github ![ ][1] ---------- 源码包只有200KB,总体制作时间为一周,开发者为学生党,不定 ...
- html登录界面设计代码_最简洁实现Github登录的JS代码示例
本文源码地址:https://github.com/Spring-Security-China/oauth2-client-login-js-github 大纲 概述 实现思路分析 在Github官网 ...
- app注册页面php开发,教你用app()函数注册程序(微信程序开发)
这篇文章主要介绍了微信小程序 教程之注册程序的相关资料,需要的朋友可以参考下 系列文章: 微信小程序 教程之模块化 微信小程序 教程之注册页面 微信小程序 教程之注册程序 App() App()函数用 ...
- 基于android影院app设计与实现
目录 1.课题研究立项依据 2.文献综述 3.课题研究的基本内容及预期目标或成果 4.课题的研究方案 5.研究进度安排 6.主要参考文献 1.课题研究立项依据 随着互联网的快速发展,计算机网络的普及, ...
- 用户登录测试用例设计
目录 用户登录测试用例设计 软件功能需求 测试需求 测试用例 用户登录测试用例设计 软件功能需求 用户登录 测试需求 功能性测试 安全性测试 性能测试 兼容性测试 测试用例 功能性测试用例(基于等价类 ...
- 历时五天用 SwiftUI 做了一款 APP,阿里工程师如何做的?
作者|姜沂(倾寒) 出品|阿里巴巴新零售淘系技术部 导读:自 2014 年苹果发布会发布 Swift 之后, Swift 经过多年迭代,终于达到了 ABI 稳定版本,也意味着 Swift 做为稳定的 ...
- 10岁就发布了5款App,被库克约见的小男孩长什么样
当你的孩子还在沉迷王者农药,坑着队友的时候,10岁的他已经有5款App上架了. Yuma,6岁就开始编程. 学完了斯坦福大学的免费编程课. 之后的4年,给苹果开发了5款App,全部上架了. 他以&qu ...
最新文章
- 用Spark实现简单的单词统计
- css和js和html代码,网页代码中js和css指的是什么?
- java swing 外观框架_Swing外观框架BeautyEye使用
- 文巾解题 45. 跳跃游戏 II
- 一个封锁操作被对 wsacancelblockingcall 的调用中断_操作系统概论
- 1.6编程基础之一维数组_04数组逆序重放
- dpf linux安装db2_值得一看!数据库及Mysql入门,附详细安装教程
- 最常使用的css 工具_使用这些非常有用CSS工具更快地实施网站设计
- atitit.二维码生成总结java zxing
- Gentoo安装MarkDown编辑器Haroopad
- fpga驱动步进电机转动指定角度_通过PLC实现步进电机定位控制的方法
- 大佛顶首楞严经摄论 太虚大师著 -读记
- 示波器的带宽和采样率
- MySQL技术内幕InnoDB存储引擎
- 异常恶毒的十二星座性格分析(转)
- vrchat模型房_VRChat之blender教程
- python小项目——2048小游戏(详解)
- 已解决RuntimeError: CUDA error: device-side assert triggered异常的正确解决方法,亲测有效!!!
- (免费分享)基于javaweb,ssm旅游景点预定系统
- 自动驾驶 11-3: 根据 LIDAR 数据进行位姿估计 Pose Estimation from LIDAR Data
热门文章
- mysql的缓冲池大小_MySQL之缓冲池
- 工程经济学计算机答案,工程经济学课后习题答案计算题刘晓君答案
- tinyxml2解析rss文件
- 前端Vue使用封装Mock.js和api请求模拟数据案例(带源码)
- Python入门数学类编程——编写数学计算程序
- android camera2 对焦,使用Android camera2手动对焦闪光灯
- 中国定制男装店中的世界顶级面料品牌(组图)_新浪尚品_新浪网
- 转:人生成功必读的经典语录200条
- 华强北airpods三代连接安卓手机没声音_华强北的洛达AirPods靠谱吗?
- shardingsphere单字段均匀分库分表算法