一、注册模块需要考虑的因素

  通常注册模块需要考虑的因素有如下几条:

  • 注册使用的帐号
  • 注册密码
  • 注册验证码
  • 注册按钮
  1. 注册使用账号一般有:
  • 手机号注册
  • 邮箱注册
  • 用户名注册
  • 手机号+用户名注册
  • 手机号+邮箱注册
  • 邮箱+用户名注册
  • 手机号+邮箱+用户名注册
  1. 注册密码通常要考虑的要点如下:
  • 只用输入一次密码,还是要输入两次密码
  • 是否需要用户手动选择密码是否可见
  1. 注册验证码需要考虑的要点如下:
  • 使用数字验证码,还是图形验证码
  • 一段时间内,输入的验证码是否有次数限制
  1. 注册按钮通常的设计思路如下:
  • 一开始注册按钮是否可点击
  • 何时点击注册按钮为最佳机会
  • 在点击注册按钮之后,如何有效提示用户注册失败的原因,而不会影响界面的美观,同时也不会让用户觉得烦躁,最后能让用户有效定位到输入失败的地方
  • 注册成功后是否直接登录

二、注册模块的业务逻辑

  1. 使用手机号注册

  使用手机号注册时,获取验证码一般考虑的是通过短信获取,这样既可以有效防止用户输入错误的手机号。但如果用户多次点击获取验证码,排除掉蓄意为之之外,就要产品研发人员考虑的是,用户是否是因为输入错误手机号或者其他原因造成收取不到验证码的情况,因此,在用户第二次/第三次点击获取验证码时开始,弹出来一个界面,让用户核查一下是哪种原因导致的无法获取验证码。通常的原因有如下几个:

  • 手机号是否输入正确?
  • 手机是否有信号?
  • 手机是否关机?
  • 手机是否因欠费而无法正常获取短信息?

APP注册模块流程图-手机号注册.png

  1. 使用邮箱注册

  如果是在移动端上采用邮箱地址注册,通常建议,在验证邮箱地址格式正确之后,提示用户,是否要使用这个邮箱地址来注册,主要是因为,一般在移动端上使用邮箱地址注册时,不太建议进行邮箱地址的确认(比如手机,登录邮箱操作很繁琐,难比PC端)。所以,一旦用户输入邮箱地址但不确认,有可能用户输入错误而没有发现。因此,通常在验证该注册邮箱地址格式正确且可以使用时,提示用户确认下是否要使用该邮箱地址。

APP注册模块流程图-邮箱地址注册.png

  1. 使用用户名注册

  一般只使用用户名注册的产品,是那些可能没有邮箱或者有手机但没有手机号码的情况,或者是为了减少输入的内容。因为没有其他验证手段,为了防止用户输入错误,通常在验证该注册用户名格式正确且可以使用时,提示用户确认下是否要使用该用户名。

APP注册模块流程图-用户名注册.png

  1. 使用手机号+用户名注册/使用邮箱地址+用户名注册/使用手机号+邮箱地址/使用手机号+邮箱地址+用户名注册

  一般只有用户必须使用唯一的用户名登陆,或者希望提供多种登陆方式供用户选择并同时验证时,才有可能考虑这几种模式之一。这几种模式是将各自独立的模式的注册流程合并在一起。一般如果不是必须的话,可以不考虑这三种模式,而是在用户正常使用一种模式注册并登录成功后,提示用户在用户个人信息设置界面将剩下的两种模式给补充完成,这样以后用户可以直接采用这三种注册账户的任何一种作为登录账号,且拥有相同的密码。

三、关于注册模块的一些思考

  1. 如何能有效地简化注册流程?

  假如一个注册流程中只包含注册账户、密码、验证码这三个输入项,简化流程实际上可以从减少用户的“无效输入”上入手,比如:

  • 注册界面一开始只需要有一个输入注册账号的输入框,以及一个检查输入账号是否正确的按钮(例如获取验证码的按钮,这个既是注册流程中的一部分,同时还能直接检查注册账户),如果账号存在了,就提示用户是否直接用该账号登录;如果不存在且账号格式正确,那就再显示其他的输入框。这样做的原因有两点:

(1)从用户角度来说,有相当一部分客户喜欢在所有的内容都输入完成后,再去获取验证码,这时候再发现账号已经存在并且能用这个账号直接登录,就浪费了输入密码的时间
(2)从app设计角度来说,有一些app喜欢将获取验证码的操作放在整个输入环节的最后,潜意识地让用户最后去获取验证码

  鉴于此,通常在设计注册模块时,考虑一下如下的设计方案,提升用户体验:

  • 将获取验证码的按钮尽可能的贴近注册账户放置
  • 如果有可能,尽量在用户输入账号之后,检查账号是否存在(这是最主要的一个目的)或者账号格式是否正确。比如滴滴,不管是注册还是登陆,都是只让用户输入手机号,然后“下一步”给出验证码,如果账号存在,就直接登录,如果不存在,就注册并登录。
  • 实际考虑到底要采用哪种账号形式来进行注册,不是所有的产品都需要邮箱/用户名
  1. 请务必在注册界面加载成功后,友好地提示用户,当前网络状态是否OK,如果不ok,别等着用户一切输入正确了,美滋滋地准备享受产品带给TA的快乐时,给了他一个晴天霹雳——你的网络不在服务区!
  2. 通常为了防止恶意获取数字验证码,增加企业成本,通常设计时,使用手机号获取验证码时,两次获取验证码的操作有时间间隔,或者一段时间内获取数字验证码有次数限制。可以根据自身的实际情况,设置时间间隔(一般情况下,是60秒/45秒/30秒)以及操作次数(如3~5次/小时、5~8次/天等)。对于图形验证码,建议就不要做这种设置了,基本上没有什么意义。
  3. 如何有效地提示用户应该输入什么格式的内容?拿iOS的app来说,如果单单只是在UITextField的placeholder里面写上格式,可能会因为textField的宽带问题,无法将所有的提示内容都显示出来。为了让用户首次输入的时候,就能输入格式正确的内容,可以考虑每当用户点击一个输入框准备输入时,弹出来一个小界面,将该输入框需要的格式要点一一列出,哪个要点完成了,就显示已完成状态。如果这样设计,请注意不要让弹出来的小界面遮挡住下一次要输入的输入框,所以可以考虑将这个小界面放到当前输入框的上方或者右方。
  4. 注册时的加密方案如何考虑(密码采用MD5加密之后再上传;使用POST模式上传等)?注册时的输入信息如何验证(是在服务器端验证,还是客户端验证?)?是否需要将注册信息转为json格式再上传服务器?
  5. 注册成功并登陆成功后,是否需要将相关的信息保存到本地?
  6. 在注册界面,如何能够清晰地提示用户“去登陆”?
  7. 如果用户在注册的时候不小心关闭掉了注册界面,在设计过程中通常是会销毁掉注册界面,那么是否需要考虑如果用户未注册完成时不小心将注册界面关闭掉时,将用户已经填写的信息保存到本地,当用户再次进入注册时,调取已经填写的内容让用户继续注册?如果用户注册并登录成功,那么保存的半注册信息可以直接清空掉。