本机号码一键登录

Posted by Codeboy on March 14, 2020

前言

在移动app使用手机号码登录的场景中,传统模式的步骤如下:

  1. 输入手机号码
  2. 接收验证码
  3. 输入接收到的验证码
  4. 点击登陆

最近看到很多应用都采用了一种新的模式—本机号码一键登录 ,这种模式对于用户来说,只需要确认下手机号码是否正确,点击确认登陆即可,即需要操作传统模式的最后一步,方便快捷,抖音、淘宝等应用均已经接入。

那么本机号码一键登录 的原理是什么呢?下面我们来聊一聊。

实现原理

目前三大运营商均有介绍和接入文档,原理和流程基本相同,本文从中国移动提供的sdk接入文档来阐述下原理。

登录时序图:

从上图中可以分解出客户端和服务端的职责,客户端需要取号和授权,服务端需要获取手机号。

客户端

  • 取号

    在进行一键登录的时候,需要判断用户是否可以获取到本机号码,只有成功获取到号码后才会进行下一步授权。一键登录服务必须打开蜂窝数据流量并且手机操作系统给予应用蜂窝数据权限才能使用,成功获取的过程是需要消耗一点流量。

  • 授权

    非完整号码成功获取后,就可以请求展示授权页,供用户操作。授权这一步是建立在取号的基础上的,上面我们知道了,成功取号的前提是使用蜂窝数据流量访问,为了能够提升取号成功率,sdk层面会对号码进行缓存,这里还会涉及的一个问题是双卡,所以在Android Sdk接入中也指明了,需要 READ_PHONE_STATE权限来判断用户双卡和换卡的场景。

    用户授权后,客户端可以拿到一个token,将token上报给应用服务端。

服务端

  • 获取手机号

    接收到客户端上报的token后,服务端从运营商认证服务端处获取对应的手机号码,整个流程结束。

移动一键登录能力介绍

小结

一键登录确实从用户交互和体检上提升了很多,目前有很多三方平台整合了三大运营商的sdk,不用单独对接每一家,针对有手机号登录场景的app,不妨考虑下一键登录噢。

如有任何知识产权、版权问题或理论错误,还请指正。

转载请注明原作者及以上信息。