网站首页 > 技术文章 正文
这一段时间开发了一款移动的app,过程也是充满坎坷和艰辛,每一个看似简单的功能都需要强大的逻辑思维和业务上的支持,今天就就来说一下大家可能最容易忽视的登录注册模块,都会做,但是在不断优化用户体验的路上,还是有很多改进的地方。
看了很多文章,大部分都是套用了一个模板,输入账号密码,然后将忘记密码和新用户注册分别设置两个入口,然后底部显示第三方登录入口,或者有的app就没有自己的账户密码登录,直接必须采用第三方登录入口的。
我并不是说这些登录注册方式不好,有的可能是PC端转到移动端的, 他们不能放弃PC的用户,毕竟共用一个后台;有的则是嫁接在第三方软件之上的,比如:拼多多,有赞微店,根据业务的不同采用不同的登录注册方式。
所以,根据我们的项目性质,一款纯移动app(pc只做品宣,引导用户下载app)的登录注册方式,根据前人的做法和自己的见解,做出了优化,大家不喜勿喷。
(1)首先,登录界面我做的更简洁化,不管是新用户还是老用户,只需要输入手机号码即可进入下一步的操作,在这里对输入的手机号的正确性做个校验,输入正确的手机号码才可以进入下一步。
(2)点击下一步后,后台直接发送验证码,用户可以等待短信验证码,输入规定的4位验证码,后台就进行校验,校验成功,则登录进入;校验失败,则文字提醒“验证码错误”,然后在60s后点击重新发送验证码。
这里我选择了验证码登录和密码登录并行的方式,同时底部显示语音验证码,入口不够明显。语音验证码是需要开通的运营商的服务,我们公司既然开通了,所以我们就有这个功能,但是密码登录还是考虑到用户在某些特定的场景下并不能接收到短信,比如手机欠费,连的是wifi。
(3)密码登录作为补充登录,前面说过它存在的必要性,现在的用户大多宁愿多等几秒钟,也不想打开键盘输入那复杂的密码,毕竟短信验证码才4位数字!至少了解了一下身边的人跟我的想法是一致的。
但是,既然选择密码登录,对于密码的安全性还是要有保障的,我设置密码的字符长度为6-16位,没有强制大小写和字母符号,这其实考虑到产品的价值问题,不需要设置过高的安全级别。找回密码时,还是必须要输入短信验证码或者语音验证码,为了做一个安全校验,毕竟我们撇弃了不常用的绑定邮箱。
(4)第三方登录在这里我就不多讲了,从我们产品的角度来说,第三方登录涉及的交互不多,主要是开发去对接这些第三方的账号接口。我们跟第三方的合作不多,仅限于获取用户的账号信息,根据他们返回的openid来标识用户,但是之后在产品里我们会去引导用户绑定手机号。
其实很多原理性的东西大家都可以在大神的文章里看到,这里我就不做解释说明,只是想分享给大家另外一种做移动端登录的方式,当然文末我会附上原型图:https://oo9u20.axshare.com
本文由 @海涛 原创发布于人人都是产品经理。未经许可,禁止转载
题图来自Unsplash,基于CC0协议
猜你喜欢
- 2024-09-20 Redis这些知识你了解吗?(redis知识点)
- 2024-09-20 Redis之Pub/Sub(发布订阅)(redis pub sub)
- 2024-09-20 本地启动redis控制台 & 安装redis服务(用于调试)
- 2024-09-20 redis安装4步轻松解决,你知道吗?
- 2024-09-20 redis快速入门(redis教程详解)
- 2024-09-20 Redis学习之路1-Redis的安装(redis 安装步骤)
- 2024-09-20 Redis系列-入门及安装(redis安装及使用)
- 2024-09-20 redis数据库使用教程(redis 数据库)
- 2024-09-20 一探Redis究竟:超火爆入门指南,你竟然还没看?
- 2024-09-20 redis 一主二从三哨兵的搭建测试(redis三主三从如何选举)
- 1514℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 569℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 510℃MySQL service启动脚本浅析(r12笔记第59天)
- 486℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 485℃启用MySQL查询缓存(mysql8.0查询缓存)
- 467℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 446℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 444℃MySQL server PID file could not be found!失败
- 最近发表
- 标签列表
-
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- js判断是否是json字符串 (67)
- checkout-b (67)
- c语言min函数头文件 (68)
- asynccallback (71)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)