本机号码一键登录是一种新型的登录方式,登录方式的演变过程大致可以分几个阶段:
一键登录从用户体验和安全性上来讲是更优的一种登录方式,目前在很多APP的目前都支持“本机号码一键登录”功能,如下图所示的一键登录图:
APP中会展示一个带有手机号掩码(中间4位号码隐藏了)的授权登录页面,用户点击“同意授权”按钮后,应用APP通过运营商获取完整的手机号码(因为为了保护用户隐私,Android和IOS系统限制了应用直接获取本机号码的能力),然后有了完整的手机号码后可以实现以本机号码的方式登录。那么本机号码一键登录是如何实现的呢?下面我们来聊聊它的实现原理和流程。
1、本机号码一键登录的基础原理
手机流量上网原理是实现一键登录的关键。流量上网采用PPP协议进行点对点连接。在物理层,流量通过手机内置的基带模块进行无线信号的调制、解调工作。
流量上网过程分为接入和传输两个阶段,接入阶段中手机携带IMSI信息连接MME(移动控制单元),MME通过HSS(归属签约用户服务器)验证后,进行初始化并提供加密传输支持。传输阶段中数据包经过基站、S-GW(服务网关)、P-GW(PDN网关)到达互联网资源,同时运营商能够通过IMSI或GUTI获取当前用户的手机号码。
获取手机号码的能力通过数据网关实现,运营商具备验证连接用户身份的能力,手机卡中的IMSI信息在运营商数据库中记录,确保基站能够验证用户身份。
2、APP中本机号码一键登录的实现流程
图片
(1)获取手机掩码并唤起授权页
当用户打开APP需要登录的时候,APP会取运营商那里查询用户的手机号码掩码,运营商验证通过之后将当前的手机号掩码返回给APP并在认证的运营商的认证SDK上缓存手机号的掩码,最后就是展示给用户手机号的掩码,如下图所示的展示的手机号掩码:
图片
(2)获取手机号掩码的token
用户点击“本机号码一键登录”按钮之后,APP发送授权请求到运营商服务器上,运营商验证通过之后返回手机号掩码和手机号掩码对应的token给应用APP。
(3)获取手机号的应用授权token_a
应用APP携带手机号掩码token发起登录请求到手机APP服务器上,然后手机APP服务器上通过携带手机号掩码token、应用id和签名请求运营商服务器。运营商服务器验证通过之后返回完整的手机号码给手机APP服务器,然后手机APP服务器生成对应的应用授权token_a,并返回应用授权token_a给APP,APP缓存应用授权token_a并提示登录成功。
(4)APP携带应用授权token_a访问服务器:
每当APP请求访问手机APP服务器的时候,客户端都会带着token_a访问服务器,服务端验证token_a同通过后便让请求访问。
至此就完成了本机号码一键登录请求的流程。
总结:
(1)本机号码一键登录是实现不用记复杂的密码,不送接收验证码,真正的实现2秒轻松的登录。
(2)本机号码一键登录经过获取手机掩码、获取手机号掩码的token、获取手机号的应用授权token_a等几个关键步骤后实现登录流程。
(3)三个运营商的都有各自的开放平台(移动 - 互联网能力开放平台、电信-天翼账号开放平台、联通-WO+开放平台),如果要兼容三大运营商就需要分别接入三个SDK,目前已经有了第三方整合了三大运营商认证能力的第三方SDK(常见的有阿里-号码认证服务、创蓝-闪验、极光-极光认证、mob-秒验)。