设计一个优雅的登录注册模块

Android中登录注册是门学问。登录注册系统看似简单,但是里面的各种策略和逻辑非常的灵活和多变,并且隐藏着各种安全方面的陷阱,同时还要考虑用户体验的便捷性。我们如何能设计一个优雅的登录注册模块?如何能够人性化一点方便用户的操作?现在是个互联网的大时代,所有的软件都要注重用户系统,查看用户各种行为、活跃量都依赖于用户体系的数据采集, 俗话说“细节决定成败”,接下来我们慢慢细化优化这部分逻辑。这里面涉及到东西太多了,本文将为你提供一些思路和注意事项,Demo示例会在接下来的某一天为大家提供。

一、注册

1、体系分类

登录注册大模块,首先要注册。目前的市面上软件的注册分为两大体系:

1)自建用户体系

  • 软件后台需要自己创建维护一套用户信息结构,通常有手机号、邮箱和用户名注册。
  • 这种用户体系方便于平台对用户的密码进行修改、消息发送等功能。
  • 单一用户名+密码的形式,用户忘记密码之后无法找回密码,所以渐渐被淘汰
  • 现在用户名+密码,一般为了找回密码方便都会提供手机号或邮箱绑定功能,甚至手机号或邮箱就可以作为用户民,毕竟这两个信心都是能够保证用户唯一性的。

2)第三方社交平台授权用户体系

  • 这种属于授权依附于第三方社交平台的授权,是一种绑定行为。
  • 这种用户体系的优点是用户能快速傻瓜式的入驻平台,但是相对于第一种缺乏控制性。

主流软件是两种注册方式结合使用的,既可以创建帐户,也可以第三方登录,增加了软件的灵活性。本文主要讲的是自建用户体系的内容,关于第三方授权的东西没必要做太多讲解。

2、研发中考虑的知识点和注意事项

1)用户名

  • 界面上账户输入框单行显示,禁止回车折行
  • 限制长度、允许的字符范围
  • 如果监听到用户输入“@”符号,下拉列表列出常用的邮箱后缀共用户点击选择
  • 提供全部清除功能,如果输入有误方便全部清空
  • 输入框内提供友好简短明了的提示性信息
  • 合法性校验,简单的校验手机号和邮件,减轻服务端校验的性能损耗

2)密码

  • 界面上密码输入框单行显示,禁止回车折行
  • 限制长度、允许的字符范围
  • 显示为密码状态不可见,提供查看明文的功能
  • 输入框内提供简短的密码规则提示性信息
  • 安全性高的软件自己写密码随机键盘

3)其他

  • 好的体验是不要让用户在注册的时候输入账户密码之外的用户信息,以后业务需要的时候再进行完善
  • 如果注册用户名或者密码不符合要求,进行友好提示
  • 短信获取验证码添加倒计时功能
  • 防止恶意机器人注册,添加图片验证码
  • 安卓手机监听短信,自动获取验证码填入
  • 提交手机号获取到后台短信通道返回的正确验证码,本地校验
  • 注册成功后的逻辑,按照业务需要跳到登录或者进入主界面
  • 新颖的注册也会使用语音验证码
  • 如果已经注册过的用户名,提示用户可以直接去登录
  • 由用户邀请系统的项目,可以提供邀请码输入功能

二、登录

登录中的用户体验注意事项参照注册的内容,并在登录新增特有的内容,如下

1)用户名

  • 登录账户记忆功能,记录登录成功的用户信息,下拉列表展示。要求项目存储用户信息考虑多用户问题。

2)密码

  • 用户连续输入错误N次之后,弹出图片验证码,防止机器人暴力破解

3)其他

  • 首先判断网络状态,如果没有网络连接进行友好提示
  • 是否自动登录功能,如果自动登录可以直接进入界面,或者按业务需要自动执行登录流程
  • 自动登录的过程中显示用户头像
  • 不自动登录的情况显示用户头像,只输入密码,并提供切换账户功能
  • 用户注册和忘记密码放在明显位置
  • 登录或注册成功后的密码本地存储禁止使用明文,要专业、要加密
  • 登录或注册成功后用户信心本地化,要在软件内部退出登录时要考虑擦除哪些信息,保留哪些信息。

4)另外,补充两个特例:

A:提供验证码登录,用户无需输入密码,只需用户名和短信验证码正常登录。

B:现在根据业务需求的不同,还有部分软件弱化登录,这个用户体验我觉得比较好。用户刚下载一个软件,可以先使用游客的模式来接触平台的内容,等用户感兴趣了或者业务需要再导向注册登录。同时这里埋了一个技术点,就是页面的传值,这个比较重要,如果面试中遇到问这部分设计思路一定要讲,比如用户在购物平台买下了心爱的宝贝,或者收藏了商品,结账时候提示去注册,那么在用户注册成功回来的时候,应该把之前的数据带着继续能够按照正常的跳转逻辑走下去,该去结账的去结账,该查看收藏的继续查看收藏。

三、忘记密码

主要是根据绑定的手机号或者邮箱获取验证码进行重新设置。

总结

本文内容比较空洞枯燥,作为抛砖引玉只呈现出一个简单登录注册系统逻辑,但都是干货,登录注册系统的设计其实没有一个千篇一律的模板,都需要根据自己产品系统的特点来灵活处置,并且做好每一步的引导,处处都是细节。后期将写一个Demo示例给大家做参考,理论要联系实际啊,尽请期待。有不妥之处欢迎拍砖~

你可能感兴趣的:(Android)