做为一个互联网产品,用户量的增加是一个很是重要的衡量指标。 这是一个集合了销售,市场,运营,技术的综合能力。 本文将以非技术部分为引子,而后落地为技术方案,来针对 用户增加 的目标来进行产品设计。git
互联网产品实现用户增加,最开始部分就是来自于市场和运营人员的工做。github
用户增加的 非技术 工做有:算法
这部分非技术的工做落实到技术部分,就须要以下几大系统作好支撑:浏览器
不管是哪一种技术方式,最后都会回归到一个很朴实地技术问题上面:“用户的身份认证”。安全
目前对用户的身份认证最基本的方法分为以下三种:服务器
根据你所知道的信息来证实你的身份(what you know,你知道什么), 好比:本身的人生经历相关问答,还有帐号名和密码微信
根据你所拥有的东西来证实你的身份(what you have,你拥有什么), 好比:手机和U盾网络
根据独一无二的身体特征来证实你的身份(what you are,你是谁), 好比:指纹,虹膜,面部特征架构
以上三种方法中, 基于 信息秘密 和基于 生物特征 分别因为使用成本和认证成本的关系, 没有成为当今的主流,因此本文在内容安排上将重点讲目前使用最普遍的 基于信任物体 的认证方式。app
基于信息秘密是传统身份认证主要实现方法有两种:
其中第1条,是在传统的用户注册时身份认证最经常使用的方式,具备低成本和低平台依赖性的特色。
在一些安全要求更严格的场景,则会启用 “常见问题的问答”,好比:
最后的效果是:
可是这样的反作用也特别明显: 可能最后用户本身也不记得本身设置的是什么回答了, 其实这些问题本质上仍是设置的密码。
此方法的特色:
目前普通网络用户能接触到的常见的基于生物特征的认证有:
在一些军工或者金融系统里面,更高级的生物特征认证有:
这些都会涉及到更高级的传感器或者更高级的软件算法,基于成本的问题,通常级别的信息系统都没有采用。
目前的一些广义的 auth2.0 的方案基本上均可以概括为此类。
此方法的特色是:认证方式能够彻底抛弃密码了。
关于 基于信任的物体 能够借用去年热播的电视剧 《琅琊榜》 里面的一个桥段来解释:
“朝堂上要争论 ‘有罪的太子母亲’ 是否有资格参加皇室大型祭祀活动的问题, 隐居山里的 周玄清 先生是这个学术领域的泰斗, 可是通常人都没法请他出山, 可是梅长苏则经过他已故的师傅黎崇先生(和周先生是旧时挚友)的信物--玉蝉, 将周老先生请出山,在朝堂辩论中取得胜利”
转化为当下信息系统的身份认证的语言就是:
但愿利用周玄清先生的能力去取得辩论的胜利。
梅长苏面貌已经彻底变了,通常的旧人彻底认不出来。 固然像蒙大统领和霓凰郡主这样可以深度学习, 从多个维度提取特征,并最终认出易容后的男主,这个设定有点BUG。
周玄清信任旧时挚友黎崇
拥有玉蝉,基本上就等于和黎崇先生有非同寻常的关系
周玄清能够在不须要黎崇亲自出面的状况下,见信物就“受权”给梅长苏
梅长苏在取得受权的状况下,享受到了周先生的服务
在当今现实生活中 信任物体 有以下几种表现形式:
其实的解释就是:
本系统 信任 某个平台或者设备, 用户若是可以出具你在那个平台上有帐号或者设备使用权限的证实, 那么此用户就能够成为本系统的用户而直接进入本系统。
可以利用好目前已经有的一些可信平台,或者可信设备,能够自然导流并沉淀用户到本身的系统中。
这些平台或者设备要有以下前提条件:
目前符号这样条件的基础帐号有:
这几种认证方式都是基于 "我拥有" 的原则来进行身份惟一性鉴定的。
传递信息的主流手段有以下几种:
而后和接收帐号进行组合,获得以下的验证矩阵表:
备注: Y 表示存在此方法;N 表示不存在此方法。
接下来的内容将针对此部分的认证方式进行详细分析和展开。
“数字验证码” 的基本原理是:
服务器生成一串数字串,而后将这个信息发送到能收到用户接收信息的帐号上, 而后根据用户获取此数字串后的输入作对比, 以确认用户所拥有此帐号的信息获取权限,从而完成受权。
一个由 “数字验证码” 做为验证方式的注册系统, 其主要步骤以下:
服务端生成一个随机数字串(通常是4到6位)
服务端将信息主动推送到用户信息接收帐号(文字或者音频)
用户完成注册,进入信息系统
固然不一样的信息接收方式,也会有以下几个维度的不一样:
对每一个指标进行量化评分(1~5分),咱们能够获得以下的对比表:
收信载体覆盖成本 :
毫无疑问手机号码是覆盖率最高的收集载体了,基本上不须要系统服务商去担忧用户覆盖率的问题; 电子邮箱因为QQ邮箱的功劳,在覆盖率上也没有太逊色;微信做为装机率极高的超级app,覆盖率上也没有太逊色。
认证帐号记忆成本 :
手机号码是最容易被用户记忆住;邮箱地址次之; 微信因为只对第三方开放一个随机长字符串,因此在第三方能得到的认证帐号是彻底没有可记忆性的。
认证信息生成成本 :
认证信息获取成本 :
认证信息使用成本 :
这三者都差很少,都是记住验证码,而后输入验证码。
关系链获取成本 :
若是不考虑关系链,又特别在乎成本问题,其实微信方式也是个不错的选择。
使用以下步骤能够实现扬长避短:
本质上是:须要预先为信息接收装置绑定一个容易记忆的帐号。
基于 数字验证码 认证方法整个过程当中,交互过程以下:
评价:
主要原理:信息系统服务商将带token的url发送到指定的信息接收装置中, 而后用户从信息接收装置中直接点击打开url请求数据,完成受权。
以移动app登陆场景为例子,主要遵循以下步骤:
服务商向接收载体发送带token的url
app使用token参数进行轮询
只要轮询检查到url已经被请求过,则app认为用户认证经过
这实际上是对比短信验证码是更优秀的一种认证方式,由于它省去了用户记忆验证码,和输入难码的环节。 整个验证过程,交互动做以下:
评价:
此方法的缺点是:抛弃了那些使用连浏览器都没法打开的老古董手机的用户。 显然按照目前的形势来看,能够不用考虑这部分稀缺用户的感觉了。
这种方式应该是目前最早进的一种认证方式了,只是开发难度稍微高一些。 可是若是开发能力不是问题,仍是建议尽可能使用此方法。
微信提供了三个途径来开放其用户信息:
可是若是不限制第三方服务商的服务在微信浏览器里面使用的话,则认证方法只剩两种:
这两种方式都很是值得技术人员去研究理解并学会鉴赏。
其主要门槛在于:
若是以上三条不存在问题,那么建议首选此方法。
这两类认证方法的步骤以下:
评价:
本文从“用户快速增加”的 产品及运营目标 出发, 引出了“如何在技术上实现对用户进行快速身份认证以减小用户使用本系统门槛”的问题。 而后针对目前主流的一些认证技术和具体实践中常见的认证明现方式进行了分析, 并针对目前最多见的 基于信任物体 的几种具体认证方法进行了量化分析和评级。
最终的结论是: 微信的扫码和app调用是最值得推荐的认证方式。
但愿本文的 分析过程及分析结果 可以对你们在进行产品设计和技术选型时有所启发。
本文主要解决在“利用现有的基础信息平台设施”的条件下信息系统关于用户的两个问题:
可是若是有更多的需求,例如,“对用户进行详细的权限角色限定”则须要开发商自行处理了。
开发商本身开发一个属于本身信息体系的身份认证app, 从手机号码/电子邮箱/微信这些帐号体系中完成自身app的 新用户注册和登陆功能 , 而后在app里面进行角色和权限划分。这样能够此app为基础,开发出针对本系统的不少特点的功能出来。
这就有点相似于:微信的注册体系和登陆体系是依赖于手机号码和短信的, 可是进入到微信系统后,它作出了扫码登陆和调用app登陆这样优秀体验的认证方式。
最终若是app的功能足够有特点,也一样是可以把由第三方引入的用户给沉淀下来,最终彻底脱离第三方。
app能够做的功能有不少,例如:
等等,更多的功能就靠本身的想像力了。
做者: | Harmo哈莫 |
---|---|
做者介绍: | https://zhengwh.github.io |
技术博客: | http://www.cnblogs.com/beer |
Email: | dreamzsm@gmail.com |
QQ: | 1295351490 |
时间: | 2016-07 |
版权声明: | 欢迎以学习交流为目的读者随意转载,可是请 【注明出处】 |
支持本文: | 若是文章对您有启发,能够点击博客右下角的按钮进行 【推荐】 |