原标题:最快捷的手机号码实现怎样关闭本机一键登录录
我们先来看一下目前的一些登录方式
使用账号加密码是最传统的登录方式,可以说是简单粗暴的一般也不会絀现什么问题。
但这种方式要求用户要记住自己的账号和密码也就是有一个记忆成本。用户为了降低记忆成本很可能会在不同平台使鼡同一套账号密码。从安全角度考虑一旦某个平台的账号密码泄露了,会连累到该用户使用的其他平台
另外,由于账号和个人身份无關意味着同一个用户可以注册多个不同的账号,也就是可能会有恶意注册的情况发生
为解决这两个问题,理想的情况就是使用一个和鼡户身份强关联的东西来作为账号但用什么呢?总不能拿身份证做账号吧
这个问题一直没有一个好的回答,直到手机卡强制实名制
從手机卡实名制开始,手机号已经成为我们的另一个身份证明
使用手机号加验证码的登录方式目前已经成为主流,和输入账号密码相比它可以更好的验证用户身份,可以防止恶意注册用户不用再去记自己的账号密码,增加了安全性现在用户也习惯并接受了这种登录方式。
现在很多产品还把登录和注册的流程进行了结合如果登录时服务器发现手机号还未注册,会直接用这个手机号注册好再进行登录注册过程对用户是无感的,极大简化了注册流程
这种登录方式需要进行一系列的操作:输入手机号、等待验证码短信、输入验证码、點击登录。这整个流程走完可能需要 20 秒以上操作也比较繁琐。并且它是依赖短信网络的因为如果收不到短信,也就登录不了了这些問题可能造成一部分用户在注册阶段就流失了。
从安全角度考虑还存在验证码泄漏的风险。如果有人知道了你的手机号并且窃取到了驗证码,那他也能登录你的账号了
但回过头来想一下,为什么我们需要验证码验证码的作用就是确定这个手机号是你的,那除了使用短信是否还有别的方式对手机号进行认证?
如果能获取到当前使用的手机号就能对用户输入的号码进行验证了。但出于安全考虑客戶端是无法直接获取到手机号的,运营商则可以通过 sim 卡数据查询到
现在运营商已经开放了相关的能力,现在我们可以在用户输入手机号後通过调用运营商的接口,判断用户输入的手机号是否和本地号码一致这样一来,用户就省去了等待验证码短信、输入验证码的过程也不受短信网络的限制,简化了登录流程
但再进一步想,如果运营商可以把当前的号码直接返回给我们而不只是用于验证,那用户連手机号都不需要填了
于是,就有了今天的主角怎样关闭本机一键登录录
获取到当前手机使用的手机卡号,直接使用这个号码进行登錄这就是怎样关闭本机一键登录录。
这种登录方式的好处是显而易见的它可以更方便、快捷地完成注册、登录流程,将原本可能需要 20 秒的流程缩短到了 2 秒左右,很大程度上降低了登录环节的用户流失
怎样关闭本机一键登录录能不能做,取决于运营商是否开放相关服務这也是为什么过去没有怎样关闭本机一键登录录,直到最近三大运营商都有了自己的开放平台:
- 移动 - 互联网能力开放平台
- 电信 - 天翼账號开放平台
要使用怎样关闭本机一键登录录需要接入运营商的 SDK,三大运营商使用了同一套授权流程:
调用 SDK 唤起授权接口SDK 会先向运营商發起获取手机号掩码的请求,请求成功后跳转到授权页授权页会显示手机号掩码以及运营商协议给用户确认。
用户同意相关协议点击授权页面的登录按钮,SDK 会请求本次取号的 token请求成功后将 token 返回给客户端。
将获取到的 token 发送到我们自己的服务器由服务器携带 token 调用运营商怎样关闭本机一键登录录的接口,调用成功就返回手机号码了服务器用手机号进行登录或注册操作,返回操作结果给客户端完成怎样關闭本机一键登录录。
这里需要把授权页拎出来讲一下它一般长这样:
授权页是 SDK 里定义的页面,以安卓为例接入 SDK 后我们需要在 AndroidManifest 里注册恏这个页面。我们不能也不应该跳过授权页面未经用户允许就获取用户手机号。
由于授权页是第三方的页面我们无法自由修改页面样式,但 SDK 里提供了足够丰富的接口给我们自定义样式
前面说到,在授权页显示之前需要先请求到手机号掩码用于在授权页展示。为了增加授权页的跳转速度减少用户等待的时间,通常 SDK 会提供一个预取号的接口给我们这个接口取的就是手机号掩码。我们可以在打开 APP 的时候就调用这个接口在已经取得掩码的情况下,用户点击跳转授权页面就不需要再等待了算是对用户体验的一个小优化。
在认证过程中会把网络切换为移动蜂窝网络,目前支持的制式有中国移动 2G/3G/4G、中国联通 3G/4G、中国电信 4G当然最好是使用 4G,使用 2G、3G 会降低认证的成功率
在沒有插电话卡,或者关闭移动蜂窝网络的情况下是无法完成认证的。所以就算接入了怎样关闭本机一键登录录我们也要兼容传统的登錄方式,允许用户在认证失败的情况下手动输入手机号登录。
三家运营商都拥有自己的 SDK但各自的 SDK 不一定支持别家的认证。这导致目前許多接入了怎样关闭本机一键登录录的产品只支持某一个运营商。
如果要兼容三大运营商就需要分别接入三个 SDK。现在我们也有更简单嘚方法就是接入一个整合了三大运营商认证能力的第三方 SDK,目前主要有以下几家:
原理和使用方法基本都是一样的具体大家可以查看它们的文档。
讲一下我们比较关心的价格问题我了解了运营商和上面提到那几家的计价,认证一次的价格集中在 4 到 6 分錢不等其中最便宜的是 mob 的秒验。但价格可能会变化这里就不具体讨论了。
一般是成功置换到手机号算一次计费调用预取号接口和认證失败,都是不计费的
总的来说,怎样关闭本机一键登录录和发送验证短信的价格差不多发送短信是发送一条就计费一次,但用户存茬需要多次获取验证码才能登录成功的情况而怎样关闭本机一键登录录能置换到手机号,基本就意味着登录成功了所以从次数上考虑,接入怎样关闭本机一键登录录应该还能稍微省一点