修真院技术分享
登录注册应该是最常见的功能了。
上节课我们讲了为什么要从常见的功能模块来入手,这一节课,直接选最最最最常见的模块,登录和注册。
1注册
2登录
3修改密码
4忘记密码
这应该算是四个小的功能点,先从注册开始说起。
注册就是几个表单,几个字段。
但实际上注册背后的含义,却是我们应该用什么样做为我们的账户体系中的惟一标记。
比如说,用户名,手机号,邮箱?
或者,你们想想,还接触过哪些账户体系呢?
简单罗列一下可能用做用户唯一标志的内容。
1 用户名
2 邮箱
3 手机号
4 用户ID
5 身份证号
6 银行卡号
最早来说,使用用户名的比较多。
但是用户名比较类的事情就是,很容易重名。
所以会有各种各样的方式来避免,其中一种,就是用唯一ID,也就是单纯的一串数字。
比如说,QQ号就是一串数字。
国外用邮箱比较多,所以也有选择用邮箱来做用户名的,也可以方便的找回密码。
老一点的网站,还会验证一下你的邮箱是否存在。
怎么验证呢?往你的邮箱里发一封邮件,发出来一个注册链接,你从你的邮箱中点一下,就证明邮箱是你的了。
但在最近几年,实名证的要求越来越高。
邮箱很难做到实名,支持用户名登录的也越来越少,毕竟现在低头族越来越多,移动化已经成为大势。
所以很多网站和App选择用手机号来做用户体系。原因之一就是方便抵达客户,可以主动发短信,打回访电话,也可以借用手机的实名制,来满足监管机构的要求。
所以现在手机做账户体系,几乎已经成为标配。
而对于一些特殊的行业,比如说银行,除了手机,身体证之号,还会提供银行卡登录。
证券行业也是如此。
其他的系统,几乎是清一色的手机登录。
在所有的账户体系中,都存在着一个问题,就是密码的问题。
这个等说到密码的时候再谈。
我们接着把注册的事情说好。
在用户注册的时候,我们往往并不是单纯的只想要拿到用户的普通信息,可能还会希望获取用户的学校,公司,小区,银行卡等等。
这些信息应该让用户在一开始就填写么?
还有可能希望用户去主动关注一些内容,导入一些好友,或者是关注一些粉丝,这些应该放在注册的流程里么?
从现在来看,注册的页面,大家希望越简单越好,最精简的选项都有哪些呢?
1.手机号
那怎么验证这个手机号是不是正确的呢?
1.手机号
2.验证码
验证码应该设置几位?4位,还是6位,纯数字,还是应该数字和字母混合?
还有,验证码会不会收不到呢?会不会有延迟呢?
验证码应该也有倒计时的功能,对不对,这个倒计时应该是多久,1分钟?30秒?2分钟?
通常大家都会设置成1分钟,可是为什么呢?
换句话说,这个时间点会受哪些因素的影响?
正常来说,从发短信到收到短信,一般在3秒到20秒之间,短信通道如果出现拥堵,也可能会过30多秒,大部分都不会超过1分钟。
所以1分钟的时间,足够大多数人收到短信了。如果你要设置成2分钟,或者是10分钟,在遇到真的收不到验证码的情况下,大概已经等疯了吧。
那么为什么不设置成30秒呢?就算是30秒到了,让用户重新点一次发送密码不可以么?
也不是不可以,但是就会出现另一种情况,用户收到的,应该是一个重复的验证码,还是不重复的验证码?
换句话,验证码的有效期和失效期,分别应该是多少呢?
有些银行,会重新发送每一个验证码,但是会加一个序号,这样在页面上就需要显示,当前是第几个序号的验证码,同样的,手机上收到的短信也是一样。
如果你不注意,同样的有可能会输入错误。
这些就是在设计验证码时候的细节。
这些细节从哪来?就是从上节课讲到的产品调研开始,你收集各种各样现存的产品,去分析和归纳他们的处理方式。
然后总结出来对应的场景,分别给出不同场景下适合的解决方案,并给出案例。
最后得出结论,对于你想要做的产品,符合哪种场景。
这才是产品调研或者是竞品调研的产出物。
一般而言,验证码是4位纯数字,不需要6位也不需要字母,4位足够了。
验证码的倒计时通常会是在1分钟。
验证码提交的有效期,可以设置成10分钟之内有效。
验证码可以在30分钟之内都是同一个。
好了。这些结论,其实你可以做自己的归纳和整理,这就是你自己的产品价值观。
未必要和我想的一致,但是这种思维方式是不变的。
我们来继续考虑,是否还需要其他的字段。
对于用户注册,特别是手机号而言,最大的风险,还在于短信炸弹。
举个例子,我输入我前女友的手机号,点击发送验证码,会怎么样?
她会收到一条注册短信,然后1分钟倒计时,我又点了一次(天知道我为什么要这么做)。
这样她会一个小时收到至少60条,一天至少60*24=1440条短信。
特别的,当我填入了一个错误的验证码之后,我其实可以快速的绕过60秒的限制。
这种情况需要避免么?
当然,如果你不这么做,你会被投诉,你的通道会被封掉。
你一个用户都得不到。
所以现在的短信通道商,往往也会对你做一些限制。
这其实还不算是最吓人的,如果我是一个程序员,我可不可以无限的调用这个接口?
这太简单了啊,我甚至都可以不用写代码。。一个Jmeter都能搞定,无限循环,直接无限发短信给我的前女友(其实我只想发一条,或者一条都不想发)。
emmm,这还不是短信炸弹的原理,我不在这里多说了。
总之,这种事情是必须要防范的,这就是风险。产品经理不是只考虑正常的流程,还要考虑到所有的流程,毕竟,你是上帝,用户才不是上帝,产品经理才是上帝,程序员只是上帝的泥瓦工而已。
怎么能识别出来,发送请求的是人还是机器呢。
最好的方式,就是图形验证码~
记得12306的图形验证码吗?我不止一次的怀疑我自己的智商,为毛那不是一团毛线?这居然不是三个昆虫?
图形验证码,其实确切来说,已经有很多变种了。
在这里的验证码,就是用来识别出来,倒底是人工还是机器的重要手段(想到图灵了么)。
好了。我们暂时不考虑奇怪的验证码。
1.手机号
2.图形验证码
3.验证码
然后,以后每次登录,都要用发短信的快捷登录,还是要有一个密码的选项呢?
一条短信大概5分钱。
如果都用短信登录的话,每天有10万人登录,大概是多少钱来着。
100000*0.05=5000,对吧。然后一个月是多少来着?
5000*30=150000,哇,好多钱!15万!这是一个大单子啊。
反正我算不清楚了,会有一些家里有矿的App,选择每次都快捷登录。
但是大部分App,应该会选择继续设置登录密码吧。
1.手机号
2.图形验证码
3.验证码
4.登录密码
那么问题来了,登录密码的规则是什么呢?
1 位数
2 规则
3 错误次数
4 密码强度
其实这个问题应该是换算成:什么样的场景下用什么样的规则?
密码从简单到复杂,应该是在易用性和安全性之间做的平衡。
我们可不可以得出一个结论,安全性高的场景,密码规则是什么样的?
安全性低的场景,密码规则是这样的?
如果你要做一个好的产品经理,我对你的建议,其实就是认真思考和这些不同的场景。
这个,也当成是你在看这篇文章的时候,我留下的作业。
那么接下来的问题就是,注册的时候,是否要让用户,重复输入新密码?
第二章第二节(上)的内容就到此结束啦
下一篇咱们接着讲登陆和注册,敬请期待
欢迎来交流群与大家一起学习讨论,在里面进行实时的沟通答疑
微信分享人:
暗灭,出身搜狐,葡萄藤创始人/CEO,10年敏捷开发最佳实践
驻场大神:
搜狐产品大神张春源:10年+产品开发经验,高屋建瓴
冰秀大神:出身搜狐,连续创业,创业者的产品即是公司:一家被收购,一家上市,匠心独运