App如何一键登录,不用输入手机号,不用账户密码

App如何一键登录,不用输入手机号,不用账户密码

上图是一键登录的界面。

下面文章出自NanBoxlv的博客。https://juejin.im/post/5d197adff265da1bb31c4fa9

登录方式

一、账号 + 密码

之前都是这种登录方式。

这种方式要用户要记住自己的账号和密码。

二、手机号 + 验证码

输入手机号、等待验证码短信、输入验证码、点击登录。

三、一键登录

就是本文的第一张图所示。

获取到当前手机使用的手机卡号,直接使用这个号码进行登录,这就是一键登录。

运营商 有了自己的开放平台 来开放相关获取手机卡号的服务:

  • 移动 - 互联网能力开放平台
  • 电信 - 天翼账号开放平台
  • 联通 - WO+ 开放平台

取号流程

要使用一键登录,需要接入运营商的 SDK,三大运营商使用了同一套授权流程:

App如何一键登录,不用输入手机号,不用账户密码

  1. SDK 初始化。传入项目在平台上的 AppKey 和 AppSecret。
  1. 唤起授权页

调用 SDK 唤起授权接口。SDK 会先向运营商发起获取手机号掩码的请求,请求成功后跳转到授权页。授权页会显示手机号掩码以及运营商协议给用户确认。

  1. 同意授权并登录

用户同意相关协议,点击授权页面的登录按钮,SDK 会请求本次取号的 token,请求成功后将 token 返回给客户端。

  1. 取号

将获取到的 token 发送到我们自己的服务器,由服务器携带 token 调用运营商一键登录的接口,调用成功就返回手机号码了。服务器用手机号进行登录或注册操作,返回操作结果给客户端,完成一键登录。

授权页

文章的一个图片就是授权页。

授权页是第三方的页面,我们无法自由修改页面样式,但 SDK 里提供了足够丰富的接口给我们自定义样式。

前面说到,在授权页显示之前需要先请求到手机号掩码,用于在授权页展示。为了增加授权页的跳转速度,减少用户等待的时间,通常 SDK 会提供一个预取号的接口给我们,这个接口取的就是手机号掩码。我们可以在打开 APP 的时候就调用这个接口,在已经取得掩码的情况下,用户点击跳转授权页面就不需要再等待了。算是对用户体验的一个小优化。

网络

在认证过程中,会把网络切换为移动蜂窝网络,目前支持的制式有中国移动 2G/3G/4G、中国联通 3G/4G、中国电信 4G。当然最好是使用 4G,使用 2G、3G 会降低认证的成功率。

在没有插电话卡,或者关闭移动蜂窝网络的情况下,是无法完成认证的。所以就算接入了一键登录,我们也要兼容传统的登录方式,允许用户在认证失败的情况下,手动输入手机号登录。

兼容三大运营商

三家运营商都拥有自己的 SDK,但各自的 SDK 不一定支持别家的认证。这导致目前许多接入了一键登录的产品,只支持某一个运营商。

如果要兼容三大运营商,就需要分别接入三个 SDK。现在我们也有更简单的方法,就是接入一个整合了三大运营商认证能力的第三方 SDK,目前主要有以下几家:

  • 阿里 - 号码认证服务
  • 创蓝 - 闪验
  • 极光 - 极光认证
  • mob - 秒验

原理和使用方法基本都是一样的,具体大家可以查看它们的文档。

计费

讲一下我们比较关心的价格问题,我了解了运营商和上面提到那几家的计价,认证一次的价格集中在 4 到 6 分钱不等,其中最便宜的是 mob 的秒验。但价格可能会变化,这里就不具体讨论了。

一般是成功置换到手机号算一次计费,调用预取号接口和认证失败,都是不计费的。

总的来说,一键登录和发送验证短信的价格差不多。发送短信是发送一条就计费一次,但用户存在需要多次获取验证码才能登录成功的情况。而一键登录能置换到手机号,基本就意味着登录成功了。所以从次数上考虑,接入一键登录应该还能稍微省一点。


分享到:


相關文章: