如何设计一个 App 的注册登录流程?
移 动设备发力之前的登录方式很简单:用户名/邮箱+密码+确认密码,所有的用户登录注册都是围绕着邮箱来做。随着移动设备和社交网络的普及,邮箱不再是唯 一,渐渐的出现了微博,QQ,微信等第三方登录方式,手机号的变更频率低,便于收集数据进行推广等优点让手机号成为各大APP的登录注册首选。
下面先让我们总结一下各大APP的注册登录方式:
1.短信快捷方式登录
百度外卖一类的APP产品(产品下载:http://www.jinhusns.com/Products/Download/?type=xcj)侧重于快速方便的让用户下单,他们的登录注册流程提供了短信快捷登录的方式,用户通过输入手机号,收到验证码并自动填写直接登录到APP我的信息页面,极大的提高了下单的速度。用这种方式的还有京东,美团,猫眼等追求用户快速下单促成交易的产品。
2.社交账号注册登录
花瓣必须通过微博等账号注册,不提供邮箱注册,第一次注册/登录后必须提交邮箱 。
社 交账号登录简化了登录注册流程,体验有所提升,更便于获取社交网络的熟人关系链,有利于后期推广。但多帐号的社交帐号容易造成后台账号混乱,僵尸账号长 存,当第三方社交账号采取收紧措施的时候会有致命性的打击。例如:脉脉当年用微博账号登录,后来新浪封锁了脉脉用微博登录的api,脉脉无奈只好建立自己 的账号体系。此外大多数社交账号登录网站或者app,会在后台不经允许的关注了他们的官方微博或者自动在QQ空间发布心情,真是操蛋的体验!
3.腾讯QQ的分步式注册:
腾讯的分布式注册目前是体验最好且效仿最多的登陆注册方式(不得不说企鹅做的用户体验还是国内棒棒的,还有就是网易的体验不错哦)
4.新浪微博的注册
新浪的注册流程虽然普通,但是如果作为一个忘记注册过的用户,如果先输入密码在去验证是否注册过造成了二次重复输入,体验不是很好哦。
5.emoji的合并登录方式:
emoji讨巧的把登录和注册方式合二为一,当检测到用户注册过则直接登录,如过没注册过弹出对话框提示注册并确认完成。但一个按钮同时体现两个功能,容易让用户造成混淆。
以上属于我们比较常见的登录注册流程,目前尚没有适合所有APP的登录注册方式,交互设计在设计登录注册流程时需要根据每个产品的功能特点来设计登录注册流程。
下面结合我做过的案例来分解一下我是如何设计注册登录流程的:
1.明确目标:
注册的目的是让用户拥有与设备无关的唯一识别的ID,防止用户因为注册流程繁琐而流失,增强用户体验。信息补全是为了收集用户资料,便于后期精准推广。
2.明确产品定位:
产品定位:一款类似家校通的产品,家长通过学生代码绑定孩子的账号从而了解孩子在校学习状况的产品。
3.了解元素组成:
根据产品定位元素组成包括:手机号,邮箱,密码,昵称,性别,城市,社交帐号等。
思考一:
因为家长必须绑定孩子的学生代码才可观看孩子信息,所以拥有一定的强制性和特别性(只有有学生代码的家长才可以用),所以“先尝后买”(先用产品有兴趣在注册)不适用,因此快捷登录方式也被pass。
思考二:
社
交注册显而易见的好处是:快,安全,无需验证,可信度高,记忆成本低。但产品用户多为学生家长,况且社交账号容易造成后台帐号混乱。虽然提供个人资料绑定
社交帐号统一ID可以一定程度上解决帐号混乱问题,但考虑到实现效果,外加其他平台无法完全自己掌握的帐号体系,社交账号最大的优点获取熟人关系链也对该
产品无任何帮助的前提下直接pass。
思考三:
邮箱注册需要首先进行验证,填写邮箱再去换一个应用或者打开电脑去验证邮箱简直是反人类,况且该产品目前只有手机端无网页端,所以不能用邮箱直接登录,所以去掉了邮箱注册。
思考四:
为了更快速的登录注册进入产品,我们把信息资料补全的部分放到了个人资料的编辑里面,登录和注册我们只保留手机号和密码选项。
通过上面的思考我排除了快捷登陆,社交登录,邮箱注册,信息补全元素,剩下了手机和密码两个最主要元素。
下面要解决的问题:
满足新用户快速注册
满足老用户忘记密码
满足已注册用户忘记注册过而重新注册
页面跳转越短越好
单一页面任务不超过三
稿件一:
总结:以上问题都可以解决,但不太符合用户习惯,本着我们新产品没有庞大的用户去改变用户习惯的魄力,虽保留了这一方案但目前并不适用于大众产品。
稿件二:
以上登录界面暂无优化空间,但注册界面涉及到三个小问题
首先需要验证手机号
填写密码最好一步
验证码错误或者重新发送最好不要增加额外交互
我先看了新浪的注册方式,如果第一次注册忘记了已经注册的情况下造成了输入密码的多余操作,总结而言就是我首先不知道我是否注册过就输入了密码,等提示已经注册的时候我输入密码的操作就是多余的。如下图:
这种情况下我要返回上一层登录或者找回密码,体验非常不好。
其次我看了时光记账的注册页面:
首先时光记账的注册界面单一页面超过了三个任务:手机号,发送验证,填写密码,点击注册按钮。其次单一页面的任务太多加上输入键盘会导致页面拥挤甚至遮挡下方输入框,综合会导致用户因注册流程复杂二流失。
稿件三:
这样的单页任务不超过三步,但点击获取验证码的时候后台做了两部操作,第一验证是否注册过,如果没有则发送验证码,如果有则提示注册过。(但获取验证码的按钮容易让用户造成心里预期与结果不服,按常理应该是获取验证码啊,怎么会提示已经注册呢。)
注册界面2我为了减少单页任务,减少输入负担,设置了密码明文按钮,既可以减少重复输入密码的负担,又可以通过密码明文开关确认密码正确与否。综合考虑稿件三是比较好的注册方式,但单页任务仍然有待优化的空间。
稿件四:
以上注册流程特意为单页的多任务做了优化,但是我发现如果接收验证码失败或者输出了验证码需要重新输入的话需要返回上层界面,造成了额外交互。于是我再加以改进有了稿件五。
稿件五:
在稿件四的基础上增加了发送手机号的提示和单一页面五附加交互的基础上的重新发送验证码功能。至此,整个登录注册流程的问题相应都得到解决。最后不得不反推回了腾讯的登录注册方式。
如何设计一个 App 的注册登录流程?的更多相关文章
- Node.js基于Express框架搭建一个简单的注册登录Web功能
这个小应用使用到了node.js bootstrap express 以及数据库的操作 :使用mongoose对象模型来操作 mongodb 如果没了解过的可以先去基本了解一下相关概念~ 首先注 ...
- Spring Security 的注册登录流程
Spring Security 的注册登录流程 数据库字段设计 主要数据库字段要有: 用户的 ID 用户名称 联系电话 登录密码(非明文) UserDTO对象 需要一个数据传输对象来将所有注册信息发送 ...
- PHP实现一个简陋的注册登录页面
PHP实现一个简陋的注册登录页面 今天来水一篇没有**用的 /滑稽脸,代码简陋臃肿考虑不全,各位大佬轻喷,还望不吝赐教. 首先考虑了一下需要至少四个页面:register.html.register. ...
- 一个App项目设计开发完整流程
作为一个PHP程序猿想转行APP开发可不是件容易的事情,话说隔行如隔山,这隔着一层语言也是多东西需要学习啊,一直对APP开发很感兴趣,最近请教了几个做移动开发的朋友,看了很多的资料,决定把自己学到的东 ...
- Nodejs建站笔记-注册登录流程的简单实现
1. 使用Backbone实现前端hash路由 登录注册页面如下: 初步设想将注册和登录作为两个不同的url实现,但登录和注册功能的差距只有form表单部分,用两个url实现显然开销过大,所以最终方案 ...
- DZ注册登录流程梳理
用户注册流程第一步:/source/class/class_member.php: on_register注册入口 if(!$activation) {//不为空,说明用户已经注册过 //将用户注册到 ...
- 一个基于Unix套接字的注册登录系统
2016/5/5 今天,我参考<Unix网络编程-卷1>第5章的TCP回射客户/服务器程序写了一个简单的注册登录系统,其功能如下:(1)注册.客户端向服务器发送个人信息请求注册,服务器查询 ...
- vue2.0+koa2+mongodb实现注册登录
前言 前段时间和公司一个由技术转产品的同事探讨他的职业道路,对我说了一句深以为然的话: "不要把自己禁锢在某一个领域,技术到产品的转变,首先就是思维上的转变.你一直做前端,数据的交互你只知道 ...
- Android开发案例 - 注册登录
本文只涉及UI方面的内容, 如果您是希望了解非UI方面的访客, 请跳过此文. 在微博, 微信等App的注册登录过程中有这样的交互场景(如下图): 打开登录界面 在登录界面中, 点击注册, 跳转到注册界 ...
随机推荐
- 从Windows中卸载Apache
在重装Apache或者妳不再需要它的时候,这时就需要将它卸载. 下面是步骤: 打开开始菜单(win8中ÿ+X)或者我的电脑(废话) 找到并打开Apache的安装目录(Program Files\Apa ...
- [Unity3D入门]入门级游戏项目"坦克狙击手"更新
[Unity3D入门]入门级游戏项目"坦克狙击手"更新 在上一篇中我分享了一个尚未完全写好的入门级unity3d项目"坦克狙击手". 本文介绍最新版的" ...
- Android Activity的生命周期简单总结
Android Activity的生命周期简单总结 这里的内容参考官方的文档,这篇文章的目的不是去总结Activity是如何启动,如何创造,以及暂停和销毁的,而是从实际开发中分析在Activity各个 ...
- Eloquent ORM笔记
基本操作 新增 $user = new User; $user->name = 'John'; $user->save(); $insertedId = $user->id;//从对 ...
- 正则表达式匹配/data/misc/wifi/wpa_supplicant.conf的WiFi名称与密码
正则表达式匹配/data/misc/wifi/wpa_supplicant.conf的WiFi名称与密码: String regex_name="ssid=\"(.*?)\&quo ...
- Atitit 基于meta的orm,提升加速数据库相关应用的开发
Atitit 基于meta的orm,提升加速数据库相关应用的开发 1.1. Overview概论1 1.2. Function & Feature功能特性1 1.2.1. meta api2 ...
- salesforce 零基础开发入门学习(八)数据分页简单制作
本篇介绍通过使用VF自带标签和Apex实现简单的数据翻页功能. 代码上来之前首先简单介绍一下本篇用到的主要知识: 1.ApexPages命名空间 此命名空间下的类用于VF的控制. 主要的类包括但不限于 ...
- node.js 简介
简介: Node,是一个可以让 JavaScript 运行在服务器端的平台.它可以让 JavaScript 脱离浏览器的束缚运行在一般的服务器环境下 Node.js 是一个为实时Web ...
- SSRS2:Reporting Service 配置Service Account
1,Service Account SSRS以一个Service方式实现,有三部分组成:Web Service,Report Manager和一个后台的进程,这个Service运行的账号就是Servi ...
- CSS技能汇总,研究及实践
最近一直在研究CSS,因为发现实践中大部分时间都在写CSS,且自己感觉写的很烂,虽然以前看的很多,但却很少有去实践过,更别提研究了,现在发现根本就不是你懂你就会,很多都是你用着用着才真的会了的,于是现 ...