原创 用户一键登录方案有哪些?都有什么优缺点?

发布时间:2021-05-26 11:02:28 浏览 930 来源:博学谷 作者:方方

    用户一键登录方案有哪些?随着互联网的快速发展人们对于软件应用体验要求越来越高,快捷的登录方式可以让用户体验更好,因此不少企业在各个环节进行优化,尤其是登录方式。要知道一键登录能不能做取决于运营商是否开放相关服务。

    用户一键登录方案

    使用账号加密码是最传统的登录方式简单粗暴一般也不会出现什么问题。但这种方式要求用户要记住自己的账号和密码,有一个记忆成本。用户为了降低记忆成本很可能会在不同平台使用同一套账号密码。从安全角度考虑一旦某个平台的账号密码泄露了会连累到该用户使用的其他平台。

    由于账号和个人身份无关同一个用户可以注册多个不同的账号,可能会有恶意注册的情况发生。为解决这两个问题理想的情况就是使用一个和用户身份强关联的东西来作为账号。但用什么呢?总不能拿身份证做账号吧。这个问题一直没有一个好的回答直到手机卡强制实名制。

    手机号、验证码登陆,从手机卡实名制开始手机号已经成为我们的另一个身份证明。使用手机号加验证码的登录方式目前已经成为主流,和输入账号密码相比,它可以更好的验证用户身份,可以防止恶意注册,用户不用再去记自己的账号密码,增加了安全性。现在用户也习惯并接受了这种登录方式。

    现在很多产品还把登录和注册的流程进行了结合,如果登录时服务器发现手机号还未注册,会直接用这个手机号注册好再进行登录,注册过程对用户是无感的,极大简化了注册流程。

    手机号、验证码登陆缺点:需要进行一系列的操作:输入手机号、等待验证码短信、输入验证码、点击登录。这整个流程走完可能需要 20 秒以上操作也比较繁琐。依赖短信网络,因为如果收不到短信登录不了了。这些问题可能造成一部分用户在注册阶段就流失了。

    从安全角度考虑存在验证码泄漏的风险。如果有人知道了你的手机号,并且窃取到了验证码那他也能登录你的账号了。

    为什么我们需要验证码?验证码的作用就是确定这个手机号是你的,除了使用短信是否还有别的方式对手机号进行认证?

    这里涉及到了本机号码认证,如果能获取到当前使用的手机号,就能对用户输入的号码进行验证了。但出于安全考虑客户端是无法直接获取到手机号,运营商则可以通过sim卡数据查询到。

    现在运营商已经开放了相关的能力,可以在用户输入手机号后通过调用运营商的接口判断用户输入的手机号是否和本地号码一致。用户就省去了等待验证码短信、输入验证码的过程,不受短信网络的限制简化了登录流程。但再进一步,如果运营商可以把当前的号码直接返回给我们,而不只是用于验证那用户连手机号都不需要填了,于是就有了一键登录。

    一键登录获取到当前手机使用的手机卡号直接使用这个号码进行登录。这种登录方式可以更方便、快捷地完成注册、登录流程,将原本可能需要 20 秒的流程,缩短到了2秒左右,很大程度上降低了登录环节的用户流失。

    一键登录能不能做取决于运营商是否开放相关服务,这也是为什么过去没有一键登录,直到最近三大运营商都有了自己的开放平台:移动互联网能力开放平台;电信天翼账号开放平台;联通WO开放平台。要使用一键登录需要接入运营商的 SDK三大运营商使用了同一套授权流程:

    SDK三大运营商授权流程

    主要步骤如下:

    1、SDK 初始化

    调用 SDK 的初始化方法,传入项目在平台上的 AppKey 和 AppSecret。

    2、唤起授权页

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

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

    4、取号

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

    讲一下价格问题,运营商计价认证一次的价格集中在 4 到 6 分钱不等,其中最便宜的是mob秒验。一般是成功置换到手机号算一次计费,调用预取号接口和认证失败不计费的。

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

    目前一键登录处于刚起步的阶段运营商的认证服务还需要改进,对于用户也还有一个被接受的过程。一键登录将会成为未来的主流登陆方式之一。

    申请免费试学名额    

在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!

上一篇: UDP和TCP协议区别是什么?哪种更常用? 下一篇: IT程序员为什么要学算法?有用吗?

相关推荐 更多

热门文章

  • 创建表并给某个字段添加数据的SQL语句怎么写
  • 如何使用连接更新表中某个字段数据?
  • MySQL数据库应用之如何将查询结果插入到其它表中?
  • 分组和聚合函数的组合怎么使用?代码怎么写?
  • 外键SQL语句的编写怎么用?
  • 数据库设计之三范式是什么?有什么作用?
  • 子查询的SQL语句怎么写?如何使用?
  • 连接查询自连接的SQL语句怎么写?
  • 连接查询右连接的SQL语句怎么写?
  • 连接查询左连接的SQL语句怎么写?
  • 查看更多

扫描二维码,了解更多信息

博学谷二维码