App后台开发运维和架构实践学习总结(4)——APP的注册和登录功能设计
一、为什么需要注册和登录?
是否需要注册和登录的关键取决于产品形态。
如果用户注册登录对于用户需求、产品功能、商业模式本身带不来任何价值的话,就没必要设计这样的功能。比如一些实用工具类的产品:计算器、手电筒、无社交属性的天气预报等等。
其它像强社交需求的产品(微信)、涉及到较多用户财产安全的产品(支付宝)、用户对信息使用比较关注的产品(邮箱)等,都需要账户体系的支持,自然也就需要注册和登录。
二、注册和登录的意义
1.从用户的角度而言,注册和登录功能是:
- 个体身份的映射,代表自己独立的存在;
- 保存用户自身使用APP的行为轨迹
- 产出带用户个人标签的UGC内容(评论、发文、投稿等)
- 与平台的其他用户建立联系
- 在多设备、平台上同步账户数据
2.从产品的角度而言,注册和登录功能可以:
- 收集用户信息,标签化
- 生成用户画像,为精细化运营做准备
- 为用户提供个性化服务
- 收入转化(通过销售用户信息)
三、注册和登录的方式有哪些?
1.注册方式
注册的方式多样化,主要有以下几种四种:手机注册、邮箱注册、自定义用户名注册(如Instagram)、添加邀请码注册。
手机和邮箱注册大家都知道。自定义用户名注册的方式在互联网早期使用得较多,比如两年前的Instagram就是采用这种方式,至今我还是通过输入自定义的用户名来登录Ins账户。通过邀请码才能注册的大众产品比较少,通常这样的产品是为了保证平台的优质感,用户数量不是目的,为注册用户提供更优质的服务才是主要目标,例如很多论坛早期就是采用邀请码配合手机或者邮箱进行注册。
2.登录方式
也许有人说有多少种注册方式就有多少种登陆方式,其实不然。除了以注册的账户进行登陆之外,还可以通过绑定其他用户特性进行登陆(比如指纹识别登陆、虹膜识别登陆等)。第三方登陆、生物特性登陆、一键快捷登陆的前提都是用户已有至少一个其它账号。
总结起来,无外乎以下几种登陆方式:账号登陆(手机、邮箱);第三方登陆(微信,QQ,微博);生物特性登陆(指纹、声纹、人脸、虹膜);一键快捷登录(百度账户关联登陆)。
四、设计时应遵循哪些原则?
1.注册方式应满足绝大部分用户的注册条件
一款希望用户进行大量传播的产品,满足绝大部分用户注册条件是必不可少的。
2.注册流程尽量简洁易操作
早期的用户注册一个账户时需要填写姓名、性别、年龄、生日等一大堆信息,很多用户觉得不耐烦,导致新用户在注册阶段的流失率特别大。其实现在也存在有一些产品,用户经过第三方登录之后,仍然强制跳转到填写姓名、邮箱的页面,这是用户体验做的不好的地方之一。整个注册过程,应尽量简洁,先把用户留住,后续可以再通过运营的手段引导用户完善自己的标签。
3.保证注册方式的安全性
没有安全保证的产品,用户的安全感就无从谈起。尤其是支付类、金融类等安全等级要求较高的产品,注册过程应避免漏洞,保证用户账户的安全。
以上三点,总结起来就是:可用性、易用性、安全性。只有满足这三个特性的注册功能,才是一个合格的注册功能。
五、注册和登录的功能设计思路
1.是否需要注册和登录功能
是否需要注册和登录功能,参考文章开头(一、为什么需要注册和登录?)。
2.先使用后注册,还是先注册后使用
有些APP是一定需要账户体系支持才能使用核心功能的,例如百度云、微信等,这种情况下一定要让用户“先注册后使用”。除此之外的大部分APP都支持“先使用后注册”。但是即使是支持“先使用后注册”,用户经过不同的操作行为之后,客户端要判断什么情况下需要提醒用户登录。比如天猫APP,浏览商品、加入购物车等可以不用登录,但是一旦要订单支付,就需要登录账户。再比如人人都是产品经理APP,游客可以任意点赞、浏览、甚至打赏,但是一旦采取收藏、评论等操作时,就需要登录。
3.选择注册和登录方式
细心的网友会发现,每一个APP支持的新用户注册方式都不尽相同:微信只支持手机号注册,简书支持豆瓣登录,知乎日报只支持新浪微博和腾讯微博登录……不同产品之间的注册方式怎么差距这么大呢?其实可以从用户来源和业务模式两个方面来思考。
a)用户来源。考虑到微信、微博、QQ强大的用户基础,很多APP都开始支持第三方登录。这样做的好处是可以优化用户注册流程,提供用户体验。简书增加了豆瓣登录,也是考虑到简书的用户与豆瓣的用户匹配度比较高,有利于用户转化。
b)业务模式。知乎日报的主要营销对象在知乎外,而非知乎内,是一款对外营销知乎品牌的产品。既然受众主要是知乎外用户,那么增加知乎用户登录功能自然不是必要的,而且也会让没有知乎账号的人产生排斥感。强制 用户使用微博登录,可能也有利用用户分享的方式协助对外推广的目的。
很多时候注册和登录方式的选择是多种因素共同作用的结果,具体的还应该视产品而定。
4.注册和登录的流程设计
接下来就是具体的注册和登录流程设计了。
下面以手机号注册为例,进行APP的登陆系统流程设计。
这个实例展示的是是现如今比较普遍的设计方式,但是不同的App,涉及到的具体流程也不尽相同。比如App对验证码的接收方式就有很多种,语音、短信、邮箱等。也有的App只提供手机验证登录,也就没有密码的概念。具体的小模块还要视产品而定。
六.多问几个问题
注册和登录功能看似简单,背后却有一大堆隐藏的逻辑设计细节。试着多问自己几个问题:
- 不同IP客户端之间的登录怎么保证安全性?(例如支付宝)
- 用户注册完后系统直接登录账号还是再次输入密码登录好?
- 验证码以何种形式接收比较好?(语音、短信、邮箱、还是点击链接激活的方式……)
- 手机号换了,又没有绑定邮箱等验证方式,密码怎么找回?
……
App后台开发运维和架构实践学习总结(4)——APP的注册和登录功能设计的更多相关文章
- App后台开发运维和架构实践学习总结(5)——App产品从需求到研发到开发到上线到产品迭代全过程
前言 如果没有做过开发,研发过产品的人,很难体会做产品的艰难,刚进公司的人,一般充当的是程序开发,我这里说的是开发,它与研发是有区别的. 一个需求下来,如果不能很好地理解产品需求,如果不能很好的驾驭需 ...
- App后台开发运维和架构实践学习总结(3)——RestFul架构下API接口设计注意点
1. 争取相容性和统一性 这里就要求让API设计得是可预测的.按照这种方式写出所有接口和接口所需要的参数.现在就要确保命名是一致的,接口所需的参数顺序也是一致的.你现在应该有products,orde ...
- App后台开发运维和架构实践学习总结(2)——RESTful API设计技巧
前言 移动互联网时代,RESTful API成为越来越重要的移动端和服务器端交互的形式.尤其是在很多互联网公司或者传统行业拥抱移动互联网的时候,一套设计良好的Restful API能够帮助互联网产品支 ...
- App后台开发运维和架构实践学习总结(1)——App后台核心技术之用户验证方案
对于初学者来说,对Token和Session的使用难免会限于困境,开发过程中知道有这个东西,但却不知道为什么要用他?更不知道其原理,今天我就带大家一起分析分析这东西. 一.使用Token进行身份鉴权 ...
- 《App后台开发运维与架构实践》第2章 App后台基础技术
2.1 從App業務邏輯中提煉API接口 業務邏輯思維導圖 功能-業務邏輯思維導圖 基本功能模塊關系 功能模塊接口UML(設計出API) 在設計稿標注API 編寫API文檔 2.2 設計API的要點 ...
- App后台Keynote
[App后台Keynote] 一.基础. 1.一个 节省 流量 的 处理 方法 是 让 App 下载 经过 压缩 的 图片( 一般 是 几十 KB 以下), 当 用户 需要 查看 原图 时 才 下载 ...
- App 后台架构
转载请注明出处:http://blog.csdn.net/smartbetter/article/details/53933096 做App做的久了,就想研究一下与之相关的App后台,发现也是蛮有趣的 ...
- App后台开发架构实践笔记
1 App后台入门 1.1 App后台的功能 (1)远程存储数据: (2)消息中转. 1.2 App后台架构 架构设计的流程 (1) 根据App的设计,梳理出App的业务流程: (2) 把每个业务流程 ...
- APP后台架构20191205
1.架构,架构与业务紧密相关,是有业务驱动的. 2.APP后台演进原则. App后台的架构是由业务规模驱动而演进的,App后台是为业务服务的,App后台的价值在于能为业务提供其所需要的功能,不应过度设 ...
随机推荐
- 洛谷 P4180 【模板】严格次小生成树[BJWC2010]【次小生成树】
严格次小生成树模板 算法流程: 先用克鲁斯卡尔求最小生成树,然后给这个最小生成树树剖一下,维护边权转点权,维护最大值和严格次大值. 然后枚举没有被选入最小生成树的边,在最小生成树上查一下这条边的两端点 ...
- bzoj1528 sam-Toy Cars(贪心,优先队列)
「BZOJ1528」[POI2005] sam – Toy Cars Description Jasio 是一个三岁的小男孩,他最喜欢玩玩具了,他有n 个不同的玩具,它们都被放在了很高的架子上所以Ja ...
- 使用 script 的 module 属性实现 es6 以上的兼容
几个月前看到了这篇文章 https://philipwalton.com/articles/deploying-es2015-code-in-production-today/,给了我很大的启发,本来 ...
- mycat重启报错Failed to connect to the Wrapper at port解决方法
报错信息 ERROR | wrapper | 2018/05/11 14:01:55 | Startup failed: Timed out waiting for a signal from the ...
- 洛谷 P3372 【模板】线段树 加法
题目描述 如题,已知一个数列,你需要进行下面两种操作: 1.将某区间每一个数加上x 2.求出某区间每一个数的和 输入输出格式 输入格式: 第一行包含两个整数N.M,分别表示该数列数字的个数和操作的总个 ...
- [BZOJ:3162]:独钓寒江雪
题解: 求本质不同的独立集的个数 首先独立集的个数是很好做的 \(f[u][0/1]\)表示节点\(u\)不选/选的方案数 然后dp就是 \(f[u][0] = f[u][0] * (f[v][0] ...
- Windows8.1进入IIS管理器的方法
以前在本机的Windows8.1操作系统中安装了IIS,很久没有使用过,今天在安装IBM Http Server的时候启动失败,才想起来IIS占用了80端口,需要把IIS服务停止掉.找了半天才找到进入 ...
- Objective-C设计模式——桥接Bridge(接口适配)
桥接模式 桥接模式就是让抽象和实现分离的最好体现,符合面向对象的依赖倒转原则.Abstruct抽象类负责设计客户端接口,Implementor则负责具体的细节逻辑. 在桥接模式中,Abstruct类持 ...
- 仿ofo单车做一个轮播效果
github地址 首先我是利用swiper.js做的,因为这个很强大,哈哈~~,上代码 html很简单 <body> <div class="swiper-containe ...
- SpringMVC中Controller类的方法返回String不跳转,而是将字符串显示到页面
问题描述: 在spring中,控制层的注解一般都是使用@Controller,如果哪个请求参数需要返回数据的话,我们可以在该方法上配合@ResponseBody注解使用,这也是比较常见的方式了. 今天 ...