解析App中手机号码一键登录的原理

开发 架构
APP中会展示一个带有手机号掩码(中间4位号码隐藏了)的授权登录页面,用户点击“同意授权”按钮后,应用APP通过运营商获取完整的手机号码(因为为了保护用户隐私,Android和IOS系统限制了应用直接获取本机号码的能力),然后有了完整的手机号码后可以实现以本机号码的方式登录。

    本机号码一键登录是一种新型的登录方式,登录方式的演变过程大致可以分几个阶段:

    一键登录从用户体验和安全性上来讲是更优的一种登录方式,目前在很多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-秒验)。

责任编辑:武晓燕 来源: 龙虾编程
相关推荐

2021-03-14 15:21:18

手机运营商营业厅

2015-06-23 10:17:23

2013-12-19 15:13:19

网易

2013-12-13 16:28:01

网易

2012-05-03 10:14:58

115网盘

2021-05-11 10:29:13

黑客网络安全网络攻击

2020-10-28 15:35:39

取消手机号码归属地

2021-02-06 06:27:12

微信手机号移动应用

2017-12-20 14:37:41

2019-04-18 11:10:30

2020-03-23 12:57:20

撞库脱库洗库

2018-04-09 06:40:08

携号转网运营商网络

2020-10-21 06:58:20

手机验证码.运营商

2022-10-20 10:37:44

2017-12-20 09:01:22

Facebook虚拟游戏

2019-07-30 12:40:02

QQ账号互了umqq

2021-01-26 16:44:36

Facebook漏洞双因素认证

2021-04-06 11:06:02

Facebook黑客论坛泄露的数据

2020-11-17 06:43:16

安卓智能手机移动应用

2014-03-20 14:37:13

点赞
收藏

51CTO技术栈公众号