但回过头来想一下,为什么我们需要验证码?验证码的作用就是确定这个手机号是你的,那除了使用短信,是否还有别的方式对手机号进行认证?
本机号码认证
如果能获取到当前使用的手机号,就能对用户输入的号码进行验证了。但出于安全考虑,客户端是无法直接获取到手机号的,运营商则可以通过 sim 卡数据查询到。
现在运营商已经开放了相关的能力,现在我们可以在用户输入手机号后,通过调用运营商的接口,判断用户输入的手机号是否和本地号码一致。这样一来,用户就省去了等待验证码短信、输入验证码的过程,也不受短信网络的限制,简化了登录流程。
但再进一步想,如果运营商可以把当前的号码直接返回给我们,而不只是用于验证,那用户连手机号都不需要填了。
于是,就有了今天的主角一键登录。
一键登录
获取到当前手机使用的手机卡号,直接使用这个号码进行登录,这就是一键登录。
这种登录方式的好处是显而易见的。它可以更方便、快捷地完成注册、登录流程,将原本可能需要 20 秒的流程,缩短到了 2 秒左右,很大程度上降低了登录环节的用户流失。
一键登录能不能做,取决于运营商是否开放相关服务,这也是为什么过去没有一键登录,直到最近三大运营商都有了自己的开放平台:
取号流程
要使用一键登录,需要接入运营商的 SDK,三大运营商使用了同一套授权流程:
主要步骤如下:
1. SDK 初始化
调用 SDK 的初始化方法,传入项目在平台上的 AppKey 和 AppSecret。
2. 唤起授权页
调用 SDK 唤起授权接口。SDK 会先向运营商发起获取手机号掩码的请求,请求成功后跳转到授权页。授权页会显示手机号掩码以及运营商协议给用户确认。
3. 同意授权并登录
用户同意相关协议,点击授权页面的登录按钮,SDK 会请求本次取号的 token,请求成功后将 token 返回给客户端。
4. 取号
将获取到的 token 发送到我们自己的服务器,由服务器携带 token 调用运营商一键登录的接口,调用成功就返回手机号码了。服务器用手机号进行登录或注册操作,返回操作结果给客户端,完成一键登录。
授权页
这里需要把授权页拎出来讲一下,它一般长这样:
授权页是 SDK 里定义的页面,以安卓为例,接入 SDK 后我们需要在 AndroidManifest 里注册好这个页面。我们不能也不应该跳过授权页面,未经用户允许就获取用户手机号。
由于授权页是第三方的页面,我们无法自由修改页面样式,但 SDK 里提供了足够丰富的接口给我们自定义样式。
前面说到,在授权页显示之前需要先请求到手机号掩码,用于在授权页展示。为了增加授权页的跳转速度,减少用户等待的时间,通常 SDK 会提供一个预取号的接口给我们,这个接口取的就是手机号掩码。我们可以在打开 APP 的时候就调用这个接口,在已经取得掩码的情况下,用户点击跳转授权页面就不需要再等待了。算是对用户体验的一个小优化。
网络
–
在认证过程中,会把网络切换为移动蜂窝网络,目前支持的制式有中国移动 2G/3G/4G、中国联通 3G/4G、中国电信 4G。当然最好是使用 4G,使用 2G、3G 会降低认证的成功率。
在没有插电话卡,或者关闭移动蜂窝网络的情况下,是无法完成认证的。所以就算接入了一键登录,我们也要兼容传统的登录方式,允许用户在认证失败的情况下,手动输入手机号登录。
兼容三大运营商
三家运营商都拥有自己的 SDK,但各自的 SDK 不一定支持别家的认证。这导致目前许多接入了一键登录的产品,只支持某一个运营商。
如果要兼容三大运营商,就需要分别接入三个 SDK。现在我们也有更简单的方法,就是接入一个整合了三大运营商认证能力的第三方 SDK,目前主要有以下几家:
原理和使用方法基本都是一样的,具体大家可以查看它们的文档。
计费
–
讲一下我们比较关心的价格问题,我了解了运营商和上面提到那几家的计价,认证一次的价格集中在 4 到 6 分钱不等,其中最便宜的是 mob 的秒验。但价格可能会变化,这里就不具体讨论了。
一般是成功置换到手机号算一次计费,调用预取号接口和认证失败,都是不计费的。
总的来说,一键登录和发送验证短信的价格差不多。发送短信是发送一条就计费一次,但用户存在需要多次获取验证码才能登录成功的情况。而一键登录能置换到手机号,基本就意味着登录成功了。所以从次数上考虑,接入一键登录应该还能稍微省一点。
未来趋势
====
目前,一键登录处于刚起步的阶段,运营商的认证服务还需要改进,对于用户也还有一个被接受的过程。
但毫无疑问,一键登录将会成为未来的主流登陆方式之一。
最后
==
好啦,文章写到这里就结束了,如果你觉得文章写得不错就给个赞呗?如果你觉得那里值得改进的,请给我留言。一定会认真查询,修正不足。谢谢。
希望读到这的**您能分享和关注一下我~**以后还会更新技术干货,谢谢您的支持!
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)

最后
其实Android开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。
下图是我进阶学习所积累的历年腾讯、头条、阿里、美团、字节跳动等公司2019-2021年的高频面试题,博主还把这些技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节
整理不易,望各位看官老爷点个关注转发,谢谢!祝大家都能得到自己心仪工作。
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
高频面试题**,博主还把这些技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节
[外链图片转存中…(img-IVRVJytH-1713543768668)]
整理不易,望各位看官老爷点个关注转发,谢谢!祝大家都能得到自己心仪工作。
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!