【移动应用开发技术】好奇一键登录是怎么实现的吗?进来了解一下_第1页
【移动应用开发技术】好奇一键登录是怎么实现的吗?进来了解一下_第2页
【移动应用开发技术】好奇一键登录是怎么实现的吗?进来了解一下_第3页
【移动应用开发技术】好奇一键登录是怎么实现的吗?进来了解一下_第4页
【移动应用开发技术】好奇一键登录是怎么实现的吗?进来了解一下_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

【移动应用开发技术】好奇一键登录是怎么实现的吗?进来了解一下?

喜欢的小伙伴欢迎关注,我会定期分享Android知识点及解析,还会不断更新的BATJ面试专题,欢迎大家前来探讨交流,如有好的文章也欢迎投稿。前言好几天没更文章了,炎热的夏天总忍不住给自己放假~不过今天还是来分享一下手机号码一键登录的接入方式,希望对大家有所帮助!登录方式我们先来看一下目前的一些登录方式。账号+密码cdn.xitu.io/2019/7/30/16c419dff7b738a9?imageView2/0/w/1280/h/960/format/webp/ignore-error/1">https://user-gold-<atitle=使用账号加密码是最传统的登录方式,可以说是简单粗暴的,一般也不会出现什么问题。缺点但这种方式要求用户要记住自己的账号和密码,也就是有一个记忆成本。用户为了降低记忆成本,很可能会在不同平台使用同一套账号密码。从安全角度考虑,一旦某个平台的账号密码泄露了,会连累到该用户使用的其他平台。另外,由于账号和个人身份无关,意味着同一个用户可以注册多个不同的账号,也就是可能会有恶意注册的情况发生。为解决这两个问题,理想的情况就是使用一个和用户身份强关联的东西来作为账号。但用什么呢?总不能拿×××做账号吧。这个问题一直没有一个好的回答,直到手机卡强制实名制。手机号+验证码https://user-gold-cdn.xitu.io/2019/7/30/16c419dff7aa12a6?imageView2/0/w/1280/h/960/format/webp/ignore-error/1从手机卡实名制开始,手机号已经成为我们的另一个×××明。使用手机号加验证码的登录方式目前已经成为主流,和输入账号密码相比,它可以更好的验证用户身份,可以防止恶意注册,用户不用再去记自己的账号密码,增加了安全性。现在用户也习惯并接受了这种登录方式。现在很多产品还把登录和注册的流程进行了结合,如果登录时服务器发现手机号还未注册,会直接用这个手机号注册好再进行登录,注册过程对用户是无感的,极大简化了注册流程。缺点这种登录方式需要进行一系列的操作:输入手机号、等待验证码短信、输入验证码、点击登录。这整个流程走完可能需要20秒以上,操作也比较繁琐。并且它是依赖短信网络的,因为如果收不到短信,也就登录不了了。这些问题可能造成一部分用户在注册阶段就流失了。从安全角度考虑,还存在验证码泄漏的风险。如果有人知道了你的手机号,并且窃取到了验证码,那他也能登录你的账号了。但回过头来想一下,为什么我们需要验证码?验证码的作用就是确定这个手机号是你的,那除了使用短信,是否还有别的方式对手机号进行认证?本机号码认证https://user-gold-cdn.xitu.io/2019/7/30/16c419dff803d236?imageView2/0/w/1280/h/960/format/webp/ignore-error/1如果能获取到当前使用的手机号,就能对用户输入的号码进行验证了。但出于安全考虑,客户端是无法直接获取到手机号的,运营商则可以通过sim卡数据查询到。现在运营商已经开放了相关的能力,现在我们可以在用户输入手机号后,通过调用运营商的接口,判断用户输入的手机号是否和本地号码一致。这样一来,用户就省去了等待验证码短信、输入验证码的过程,也不受短信网络的限制,简化了登录流程。但再进一步想,如果运营商可以把当前的号码直接返回给我们,而不只是用于验证,那用户连手机号都不需要填了。于是,就有了今天的主角一键登录。一键登录https://user-gold-cdn.xitu.io/2019/7/30/16c419dff81e9439?imageView2/0/w/1280/h/960/format/webp/ignore-error/1获取到当前手机使用的手机卡号,直接使用这个号码进行登录,这就是一键登录。这种登录方式的好处是显而易见的。它可以更方便、快捷地完成注册、登录流程,将原本可能需要20秒的流程,缩短到了2秒左右,很大程度上降低了登录环节的用户流失。一键登录能不能做,取决于运营商是否开放相关服务,这也是为什么过去没有一键登录,直到最近三大运营商都有了自己的开放平台:移动-互联网能力开放平台电信-天翼账号开放平台联通-WO+开放平台取号流程要使用一键登录,需要接入运营商的SDK,三大运营商使用了同一套授权流程:https://user-gold-cdn.xitu.io/2019/7/30/16c419dffcd32216?imageView2/0/w/1280/h/960/format/webp/ignore-error/1主要步骤如下:1.

SDK初始化调用SDK的初始化方法,传入项目在平台上的AppKey和AppSecret。2.

唤起授权页调用SDK唤起授权接口。SDK会先向运营商发起获取手机号掩码的请求,请求成功后跳转到授权页。授权页会显示手机号掩码以及运营商协议给用户确认。3.

同意授权并登录用户同意相关协议,点击授权页面的登录按钮,SDK会请求本次取号的token,请求成功后将token返回给客户端。4.

取号将获取到的token发送到我们自己的服务器,由服务器携带token调用运营商一键登录的接口,调用成功就返回手机号码了。服务器用手机号进行登录或注册操作,返回操作结果给客户端,完成一键登录。授权页这里需要把授权页拎出来讲一下,它一般长这样:https://user-gold-cdn.xitu.io/2019/7/30/16c419e013a7a466?imageView2/0/w/1280/h/960/format/webp/ignore-error/1授权页是SDK里定义的页面,以安卓为例,接入SDK后我们需要在AndroidManifest里注册好这个页面。我们不能也不应该跳过授权页面,未经用户允许就获取用户手机号。由于授权页是第三方的页面,我们无法自由修改页面样式,但SDK里提供了足够丰富的接口给我们自定义样式。前面说到,在授权页显示之前需要先请求到手机号掩码,用于在授权页展示。为了增加授权页的跳转速度,减少用户等待的时间,通常SDK会提供一个预取号的接口给我们,这个接口取的就是手机号掩码。我们可以在打开APP的时候就调用这个接口,在已经取得掩码的情况下,用户点击跳转授权页面就不需要再等待了。算是对用户体验的一个小优化。网络在认证过程中,会把网络切换为移动蜂窝网络,目前支持的制式有中国移动2G/3G/4G、中国联通3G/4G、中国电信4G。当然最好是使用4G,使用2G、3G会降低认证的成功率。在没有插电话卡,或者关闭移动蜂窝网络的情况下,是无法完成认证的。所以就算接入了一键登录,我们也要兼容传统的登录方式,允许用户在认证失败的情况下,手动输入手机号登录。兼容三大运营商三家运营商都拥有自己的SDK,但各自的SDK不一定支持别家的认证。这导致目前许多接入了一键登录的产品,只支持某一个运营商。如果要兼容三大运营商,就需要分别接入三个SDK。现在我们也有更简单的方法,就是接入一个整合了三大运营商认证能力的第三方SDK,目前主要有以下几家:阿里-号码认证服务创蓝-闪验极光-极光认证mob-秒验原理和使用方法基本都是一样的,具体大家可以查看它们的文档。计费讲一下我们比较关心的价格问题,我了解了运营商和上面提到那几家的计价,认证一次的价格集中在4到6分钱不等,其中最便宜的是mob的秒验。但价格可能会变化,这里就不具体讨论了。一般是成功置换到手机号算一次计费,调用预取号接口和认证失败,都是不计费的。总的来说,一键登录和发送验证短信的价格差不多。发送短信是发送一条就计费一次,但用户存在需要多次获取验证码才能登录成功的情况。而一键登录能置换到手机号,基本就意味着登录成功了。所以从次数上考虑,接入一键登录应该还能稍微省一点。目前,一键登录处于刚起步的阶段,运营商的认证服务还需要改进,对于用户也还有一个被接受的过程。但毫无疑问,一键登录将会成为未来的主流登陆方式之一。好啦,文章写到这里就结束了,如果你觉得文章写得不错就给个赞呗?如果你觉得那里值得改进的,请给我留言。一定会认真查询,修正不足。谢

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论