让我们看一下当前的一些登录方法:
使用帐号和密码登录
使用带密码的账号是最传统的登录方式,可以说是简单粗暴,一般不会有问题。
缺点
但是这种方式需要用户记住自己的账号和密码,这就意味着有内存成本。为了降低内存成本,用户很可能在不同平台上使用同一组账户密码。从安全角度来看,一旦某个平台的账号密码泄露,将会影响用户使用的其他平台。
另外,由于账号与个人身份无关,意味着同一个用户可以注册多个不同的账号,也可能会出现恶意注册。
要解决这两个问题,理想的情况是使用与用户身份强关联的东西作为账户。但为了什么?您不能将 ID 用作帐户。
在手机卡实名制实施之前,这个问题一直没有很好的答案。
手机号、验证码登录
自从手机卡实名制之后,手机号就成为了我们的又一个身份证明。
使用手机号和验证码的登录方式已成为主流。相比输入账号密码,更能验证用户身份,防止恶意注册。用户不再需要记住他们的帐户密码,从而提高了安全性。现在用户也习惯并接受了这种登录方式。
现在很多产品还结合了登录和注册的流程。如果服务器在登录的时候发现手机号没有注册,会直接用手机号注册然后登录。注册过程对用户不敏感,大大简化了注册过程。
缺点
这种登录方式需要一系列操作:输入手机号,等待验证码短信,输入验证码,点击登录,整个过程可能需要20多秒,操作是比较麻烦。而且它依赖于短信网络,因为如果收不到短信,就无法登录。这些问题可能会导致一些用户在注册阶段流失。
从安全的角度来看,也存在验证码泄露的风险。如果有人知道您的电话号码并窃取了验证码,他也可以登录您的帐户。
但回头看,为什么我们需要验证码?验证码的作用是确认手机号码是你的。除了使用短信,还有其他方法可以验证手机号码吗?
我的电话号码认证
如果能获取到当前手机号码,就可以验证用户输入的号码。但出于安全考虑,客户端无法直接获取手机号,运营商可以通过sim卡数据查询。
既然运营商已经开放了相关能力,我们现在可以在用户输入手机号码后移动网络一键登录,通过调用运营商界面来判断用户输入的手机号码是否与本地号码一致。这样用户就可以省进入等待验证码短信和输入验证码的过程,不受短信网络的限制,简化了登录过程。
但再想一想,如果运营商可以直接将当前号码返回给我们,而不仅仅是为了验证,那么用户甚至不需要填写手机号码。
于是,就有了今天的主角一键登录。
一键登录
获取当前手机使用的手机卡号,直接用这个号码登录。这是一键登录。
这种登录方式的好处是显而易见的。可以更方便快捷地完成注册和登录过程,将可能需要20秒的过程缩短到2秒左右,大大减少了用户在登录过程中的流失。
能否一键登录,取决于运营商是否开通了相关服务,这也是过去没有一键登录的原因,直到最近移动网络一键登录,三大运营商都有自己的开放平台:
使用一键登录需要接入运营商的SDK。三大运营商使用相同的授权流程:
主要步骤如下:
SDK初始化
调用SDK的初始化方法,传入平台上项目的sum。
唤起授权页面
调用SDK调用授权接口。SDK会先向运营商发起请求,获取手机号码掩码。请求成功后会跳转到授权页面。授权页面会显示手机号码掩码和运营商协议供用户确认。
同意授权并登录
用户同意相关协议,在授权页面点击登录按钮,SDK会请求获取本次号码的token,请求成功后将token返回给客户端。
取一个号码
将获取到的token发送到我们自己的服务器,服务器会用token调用运营商的一键登录界面,调用成功会返回手机号。服务器使用手机号登录或注册,将操作结果返回给客户端,完成一键登录。
这里我们需要把授权页面拿出来谈谈。它通常看起来像这样:
授权页面是SDK中定义的页面。以为例,我们需要在访问SDK后注册这个页面。我们不能也不应该在未经用户许可的情况下跳过授权页面获取用户的电话号码。
由于授权页面是第三方页面,我们无法随意修改页面样式,但SDK提供了足够丰富的接口供我们自定义样式。
如前所述,在授权页面显示之前,需要请求手机号码掩码才能在授权页面显示。为了提高授权页面的跳转速度,减少用户的等待时间,通常SDK会给我们提供一个预取号码的接口,也就是手机号码的掩码。我们可以在APP打开的时候调用这个接口。获取到掩码后,用户无需再等待,点击跳转到授权页面。这是对用户体验的一个小优化。
在认证过程中,网络将切换到移动蜂窝网络。目前支持的系统有中国移动2G/3G/4G、中国联通3G/4G、中国电信4G。当然,最好用4G。使用 2G 和 3G 会降低认证成功率。
如果不插入电话卡或关闭移动蜂窝网络,则无法进行身份验证。因此,即便是一键登录,我们也要兼容传统的登录方式,让用户在认证失败时手动输入手机号登录。
三个运营商都有自己的SDK,但各自的SDK不一定支持其他公司的认证。因此,目前很多可以一键登录的产品都只支持某个运营商。
要想兼容三大运营商,需要分别接入三个SDK。现在我们还有一个更简单的方法,就是接入一个集成了三大运营商认证能力的第三方SDK。目前主要有以下几种:
原理和用法基本相同,具体可以查看他们的文档。
再说说我们比较关心的价格问题。我了解了上述公司的运营商和定价。一张认证的价格集中在 4 到 6 美分的范围内,最便宜的是 mob 的二次支票。但价格可能会发生变化,这里不再详细讨论。
一般情况下,手机号码更换成功计费一次,对预取号码接口的调用和认证失败不计费。
总的来说,一键登录和发送验证短信的成本差不多。发送短信是一条短信计费,但用户可能需要多次获取验证码才能成功登录。而且一键登录可以换成手机号一下使用一个加验证码的登录方式有哪些?缺点是什么?
,基本就说明登录成功了。因此,考虑到次数,应该可以访问一键登录一点省。
目前,一键登录还处于起步阶段,运营商的认证服务还有待完善,用户的接受还有一个过程。
但毫无疑问,一键登录将成为未来的主流登录方式之一。
暂无评论内容