一键登录的原理理解了手机流量上网的原理,再来看下一键登录业务是如何实现的,这个部分属于上层应用程序开发,大家应该相对熟悉一些 。
如果你接入过微信的第三方应用登录,或者其他类似的第三方应用登录,过程是差不多的 。还是先来看图:
![十分钟搞懂手机号码一键登录 怎么登录自己的手机号码](http://imgkk.shadafang.com/220425/0S02563a-2.jpg)
文章插图
【十分钟搞懂手机号码一键登录 怎么登录自己的手机号码】
这里对一些关键步骤进行说明:
- 2预取手机号掩码:这个手机号掩码需要在请求用户授权的页面展示给用户看,因为获取这个信息要通过电信运营商的网络,所以可能会比较慢,为了提升用户体验,可以在应用启动的时候就去获取,然后缓存一段时间 。
- 8授权请求:因为应用获取用户手机号这个事比较敏感,必须让用户清楚地了解并授权之后才能进行,为了确保这件事,运营商的认证SDK提供了这个授权请求页面,用户确认授权后,SDK直接向运营商认证服务发起请求认证,认证服务会返回一个认证Token给应用 。应用再通过自己的服务端拿着这个Token找运营商获取手机号码 。
- 17生成应用授权Token:应用要维护自己用户的登录状态,这里可以采用传统的Session机制,也可以使用JWT机制 。
- 3预取手机号掩码 和 11请求认证,都需要通过手机蜂窝网络通信,也就是说需要通过手机流量上网 。如果手机同时开启了流量和WIFI,认证SDK会将手机短暂切换到流量上网模式 。如果手机没有开启流量,有些SDK还会在上次成功取号之后多缓存一个临时Token,这样也能成功实现一次一键登录,不过这个限制性很大 。
14登录请求:用户如果随便造一个认证Token,然后就向应用服务提交请求,应用服务再向认证服务提交请求,这属于一种跨站攻击 。虽然这个Token可以被阻止,但是不免浪费资源,给服务端带来压力 。
这一点微信第三方应用登录做得比较好,用户登录前,应用服务端先生成一个随机数,然后应用前端向应用服务端提交时,带着这个随机数,应用服务端可以验证这个随机数 。
号码验证场景
除了用于登录,运营商网关的这种取号能力,还可以用在验证手机号上,在某些关键业务上,比如支付过程中,要求用户输入本机手机号码或者其中的某几位,然后通过运营商认证服务验证手机号是否本机号码 。
隐私保护问题设备唯一标识问题现在大家对隐私问题关注得越来越多了,经常会出现这种情况:你在某电商网站搜索了某个商品,然后访问其它网站时,都向你推荐这类商品的广告 。还有一种感觉很恐怖的情况,你刚和某个人谈论了某件事,然后就在某个App上看到了关于这件事的推荐,有人猜测是App在偷听,不过基于目前的舆论和监督,偷听风险太大,这其中的原因可能真的只是算法太厉害了 。
最近几年Android和iOS系统都对App获取手机唯一标识进行了限制,比如IMEI、Mac地址、序列号、广告Id等,目的就是防止用户的信息在多个App之间进行关联,导致泄漏用户的隐私,产生一些安全问题和法律风险,前述跨App的广告行为也自然受到了抑制 。
- 手机号码算命查吉凶
- 一文搞懂公务员和事业编的区别 公务员与事业编的区别
- 手机号码怎么导入到另一个手机 手机号码怎么导入到另一个手机上
- 中国首个办手机号码的人 中国第一手机号谁用的
- 你手机号码用了几年 手机号用了多少年
- 再也不担心手机号码被注册 刚办的手机号被注册了怎么办
- 虚拟运营商与手机号码的比较 手机号码虚拟运营商和别的有什么区别
- 为什么我国手机号码是11位 为什么我国的手机号码是11位
- 七步解绑新版微信绑定的手机号码和QQ号 微信绑定qq号后如何解绑手机号
- 手机号中如果没有这些数字 手机号码中尽量不要有什么数字