背景:PC客户端上已有自家账号登录和第三方登录功能,注册功能是必备功能,但之前都是在客户端上单击注册按钮--跳转浏览器--打开XX注册页面。这个页面的注册方式有三种,邮箱,手机和自家域名的个性账号注册。邮箱注册,还得去第三方邮箱登录验证,手机注册得短信验证码,个性账号注册简单,无需验证,但不够主流,对用户不一定有吸引力。且不说这三种注册方式如何,但这几次跳转,再验证,再回到客户端登录的流程确实是比较冗长。所以想在客户端内完成注册。
实现:客户端内嵌一个网页,由于XX注册只开放内网接口,因此外网用户需先经过咱们的服务器再传递数据到XX注册页,完成注册。首先注册要做什么样的注册呢?默认是有三种注册方式,首先我想当然的选择了邮箱注册和手机号注册,因为这两种比较主流。其中手机号注册的短信验证无需网页跳转之类,所以流程比较畅通,我特意给放了一个注册并登录的按钮,省去注册成功后再回到登陆窗口中去登录一次的麻烦。
邮箱注册及惯性思维:接下来,我就犯了一个错误,那就是把注册并登录的按钮直接放到了邮箱注册窗口去了,而忘了邮箱注册是否需要验证的问题。这是我犯的一个低级错误,是惯性思维导致的,还好测试写用例时给我提醒了。
那么到底可不可以不验证即可注册成功呢?也许可以,经过咱们服务器注册的邮箱,通过内网接口高速XX注册页面,不用验证了,给直接登录吧。好了,风险就来了,要是有人拿着一个随便想的邮箱,给随便填了个密码,注册成功了,那真正长期使用该邮箱的用户就不能注册了,而他也会纳闷第一次使用我们的产品就提示已经注册过,我们是否侵犯他隐私等,说的严重点就是容易被机器注入。
那就还是要验证吧,怎么弄?首先不能要注册并登录按钮了,因为必须验证后才能完成登录操作。那么在邮箱注册成功后,还是当前窗口中刷新出去邮箱验证的按钮,点击就又要跳转到浏览器,登录第三方邮箱,点击链接验证成功,再回到客户端;如果验证邮件发送不及时,用户还得等会儿,先刷个微博啥的,再回邮箱看看,验证完后,再回客户端。流程还是冗长了,更为麻烦的问题是,注册成功后,客户端那个注册页面能不能拿到注册成功的消息,假如拿到了,如何响应?因为浏览器里验证成功后,是直接跳转到XX登录首页,放在浏览器还容易理解,但放在客户端就奇怪了,你本来是在好好注册的,就去验证了个邮件,回到客户端时发现页面变成了注册前的首页,到底有没有注册成功?难道注册失败了?那我再注册一次吧/真麻烦,不注册这玩意儿了。最后发现如果要显示那个登录首页,页面还得我们自己写....
如果客户端页面拿到消息,给用户直接登录了,那也奇怪了,用户的登录习惯没培养起来,莫名其妙的不知道从哪就登录进去了。
当然,最大的问题还是这个注册流程还是一样长,跨窗口,多跳转,并没有解决问题。
个性账号注册及风险考虑:上面我们已经确定了手机号注册要做,它流程比较简短,也容易走通。考虑到手机注册应该不是主流注册方式,而邮箱注册流程麻烦冗长,所以我最后考虑了个性账号注册。
个性账号注册,输入完一个账号和密码,就可以直接点击注册并登录了。确实比较省时省力,但它的劣势在于:1、一旦记不住密码,就找不回账号了,这是XX注册的缺陷,如果以后产品中有跟钱有关的东西,可能会造成麻烦;2、登录交互有缺陷,如果用户不小心输入一串字母数字,但忘了输@邮箱域名,然后莫名其妙登录,那也比较奇怪,这个我们通过设计可以克服。3、产品以后还是会往个性化方向走,个性账号容易注册,但容易忘,长期来看,账号不太稳定,对我们收集和分析用户数据不太好。
考虑到以上风险,在个性化账号注册这块,我们增加了密码确认,以及默认显示厂里的域名,只需输入要注册的账号,以此加深用户记忆。
最后客户端有四种登录方式,对老用户,可用他自己常用的方式登录;对新用户,可在客户端内注册,完成注册并登录;
———————更新————————
好消息,个性账号可以找回密码了,之前页面没看到联系方式,看来是他们还在筹划这件事,现在是已经在页面上贴了联系方式了。有趣的是,我是上周才注意到找回密码的页面更新了,但他们没加上我们产品的联系方式,于是自己赶紧写了封邮件询问他们密码找回的流程如何,以及能否加上我们产品的联系方式。果然,积极的解决问题往往会带来积极的回馈。对方邮件回复了我相关流程,同时答应我把联系方式加上去。不过这个流程暂时还是人工审核,需要专人和用户沟通,并协助其找回密码。于是,在巧合的一次他们的PM打电话过来问我加联系方式的问题,中间我和他说了下写个页面,让用户填信息,后台人工审核操作的流程。嗯,他们也计划这样做,最开始是现在这个样子。
在当初的做客户端注册的需求时,我把流程和需求写出来时,绕过了表单常见的气泡提示逻辑,包括默认提示和错误提示,跟开发说“请直接参考passport页面的气泡提示交互吧,记得当时我在passport页面体验注册流程的时候,觉得这气泡做的不太友好,点一个按钮后,四处弹气泡。还是自己想偷一下懒吧,最后开发到一半,测试和开发都找我:这泡这样弹不好呀!那怎么弹,你来定一个吧。”
该做的还是得做,PM做一遍登录注册后,他的逻辑能力绝对能提高。第一遍花了20分钟,把整个弹泡逻辑写了一遍,和开发测试对了一遍,中途又自己拿PS切了N个气泡给开发,把passport页面上的文案改了下,规定了下我们现实气泡的逻辑和位置。感觉这工作是做圆满了,由于在客户端嵌页面,基于IE核,于是开始了和IE6兼容的艰辛路程,不支持半透明,hover失效等。还好最后都一起解决了,到上周五测试结束随机测试,标志需求做完了时,开发用了2天,测试用了2天,配合还算默契。
做完后的心得是,做产品,别想着马虎过去,该马虎的不能马虎,测试的细致,开发的严谨会让你不能马虎。
附最后定稿的弹泡逻辑:http://tu.mindpin.com/mindmaps/94584