跳转到主要内容
PRODUCT DOCUMENTS

快速找到所需文档,高效完成接入与排障

浏览产品文档与友盟 Skill,展开目录并阅读正文。

号码认证集成文档

本文介绍H5页面接入网页端SDK的使用方法,包括一键登录、本机号码校验功能。

一、接入步骤

1. 静态资源引入

通过script标签将网页端SDK引入,或将网页端SDK上传到您的静态资源服务器上,获取能够访问到网页端SDK的URL。

<script type="text/javascript" charset="utf-8" src="https://g.alicdn.com/jssdk/verify-h5-ui/0.0.5/uverify.min.js"></script>

注意!!!

  1. 不可在业务代码中覆盖window.uVerify变量。

  2. 未开启移动数据网络的用户无法通过一键登录完成认证:认证之前确保您的终端设备已关闭Wi-Fi连接且开启了SIM卡的4G移动数据网络(支持中国联通、中国移动的3G网络,但接口耗时会增加)。

  3. 因h5一键登录获取手机号必须在关闭wifi开启流量网络场景下,建议用户在window.uVerify回调失败时自行进行业务处理,如转为短信验证码登录等托底方式。

2. 创建应用

前往智能认证后台创建一个h5类型应用,并开通智能认证产品。创建并开通成功后可在应用列表中查看。

示例图1

image

示例图2

image

3. 配置方案及密钥

创建成功的应用可在列表中查看,选择此h5应用的配置方案。来到配置方案页后选择添加方案。

在应用列表中找到你的应用,选择配置方案,如下图

image

在认证配置页选择添加方案,如下图

image

添加方案名称后下一步,如下图

image

配置你的h5页面地址后创建方案,如下图

image

创建方案后得到AppKey和密钥,用于SDK集成使用。

image

4. 集成验证示例

得到AppKey和密钥后即可调用SDK一键登录方法验证,如下示例,

// 授权页配置项 
const authPageOption = {
  navText: "本机号码登录",
  btnText: "立即登录",
  vendorPrivacyPrefix: "《",
  vendorPrivacySuffix: "》",
  agreeSymbol: "、",
  privacyBefore: "请阅读并同意",
  privacyEnd: "",
  isFocus: true,
  isDialog: true,
  manualClose: true,
  privacyAlertIsNeedShow: true,
  showCustomView: true,
  customView: {
    element: '<div class="btn_box other" onclick="clickEvent()">关闭授权页</div>',
    style: ".btn_box.other{width: 10rem; line-height: 3rem; background: #3b82fe; color: #FFF;font-size: 1rem;border-radius: 5px;text-align: center;margin: 0 auto;}",
    js: "function clickEvent(){ window.uVerify.closePage(); }",
  },
};

// 按需调用h5一键登录功能 
window.uVerify({
  data: {
    key: "你的秘钥",  // 你的秘钥
    appkey: "你的appkey", // 你的appkey
  },
  authPageOption: authPageOption,
  callback: (res) => {
    if (res.code === 600000) {
      console.log('返回code=600000即表示成功', res);
      // 得到res.spToken即表示成功,使用spToken调用服务端接口换取明文手机号。
      // window.uVerify.closePage();  // 手动关闭授权页,按需调用 
      // const ukid = window.uVerify.getVerifyId();
      res.setMessage({  // 提示语,按需调用 
        showMessage: true,
        messageContent: '获取spToken成功',
        messageStyle: {
    	  color: "#fff",
    	  borderRadius: "8px",
        },
        time: 3000,
      });
    }
  }
});

成功后弹出授权页面如下,输入手机号中间4位数后点击立即登录,成功后即可在回调中得到spToken,使用此token去调用服务端接口换号获取明文手机号。

image

二、SDK方法

h5一键登录提供获取spToken、手动关闭授权页、获取getVerifyId方法。

h5本机号码校验提供获取本机号码的spToken、获取getVerifyId方法。

// 调用h5一键登录功能 
window.uVerify({
  data: {
    key: "你的秘钥",  // 你的秘钥
    appkey: "你的appkey", // 你的appkey
  },
  authPageOption: {},  // 授权页配置项
  callback: (res) => {
    if (res.code === 600000) {
      console.log('返回code=600000即表示成功', res);
      // 得到res.spToken即表示成功,使用spToken调用服务端接口换取明文手机号。
      // window.uVerify.closePage();  // 手动关闭授权页,按需调用 
      res.clearInput(); // 清空输入框并将光标置于第一个输入框
      res.focusOn(2); // 将光标置于第1-4个输入框
      res.setMessage({
        // 设置弹出Toast提示框(有默认样式)
        showMessage: true, // 是否弹出Toast提示框
        messageContent: '获取spToken成功', // 弹出内容
        messageStyle: {
          // 自定义弹窗样式,写入css样式即可
          color: "#fff",
          borderRadius: "8px",
        },
        time: 3000, // 弹出时间/ms,默认3000毫秒
      });
    }
  }
});

// (一键登录方法)手动关闭授权页,可选,按需调用 
// window.uVerify.closePage();  

// (本机号码校验方法)获取本机号码校验的spToken 
window.uVerify.getPhoneNumberToken({
  key: "你的秘钥",  // 你的秘钥
  appkey: "你的appkey", // 你的appkey
}, (res) => {
  // res.code=600000表示成功
  console.warn('开发者接收-本机号码校验', res);
});

// 获取ukid,用于spToken调用换号接口时传入增加频控限制
// const ukid = window.uVerify.getVerifyId();

回调函数返回参数

参数名称

参数类型

参数说明

code

string

返回的状态码。

  • 返回600000代表请求成功。

  • 其他错误码,请参见错误码。

spToken

string

运营商一键登录Token,可在服务端调用接口进行取号。

clearInput

function

调用清空当前所有输入框,将光标置于第一个输入框。

focusOn

function

入参为:1-4,将光标置于入参对应下标的输入框内。

setMessage

function

设置弹出Toast提示框(有默认样式)。入参格式:

{ 
  showMessage: boolean, // 是否弹出Toast提示框 
  messageContent: string, // 弹出内容 
  messageStyle: object, // 自定义弹窗样式 
  time: number // 弹出时间ms
}

vender

string

运营商信息:

  • CM 中国移动 

  • CU 中国联通

  • CT 中国电信

授权页配置项

对应SDK配置项中的authPageOption各配置项。

参数名称

参数类型

是否必填

参数说明

mount

string

否

指定挂载节点的ID,默认挂载到body标签。

navText

string

否

导航栏标题文案,默认值:本机号码登录。

navBackImg

string

否

导航栏返回按钮图片的src链接。

subtitle

string

否

副标题导航栏下面的说明文案,不传则不显示。

isHideLogo

boolean

否

是否隐藏Logo。取值:

  • false(默认值):表示显示。

  • true:表示隐藏。

logoImg

string

否

Logo图片设置,默认值:友盟Logo。

numberLabel

string

否

手机号码前面的文案或图片,不传则不展示。

btnText

string

否

按钮文案,默认值:登录。

isFocus

boolean

否

进入授权页面,是否聚焦光标。取值:

  • true:聚焦光标。

  • false(默认值):不聚焦光标。

    说明

    由于系统限制,iOS系统浏览器不支持该功能。

agreeSymbol

string

否

协议和协议之间的连接符号,默认用“和”连接。

privacyVenderIndex

number

否

运营商协议的位置,默认为2。

  • 0:最前面。

  • 1:中间位置。

  • 2:最后面。

vendorPrivacyPrefix

string

否

设置运营商协议前缀符号,仅支持设置如下字符中的任意一个,如<>、()、《》、【】、『』、[]、()

vendorPrivacySuffix

string

否

设置运营商协议后缀符号,仅支持设置如下字符中的任意一个,如<>、()、《》、【】、『』、[]、()

privacyBefore

string

否

设置开发者隐私条款前置自定义文案。默认:我已阅读并同意。

privacyEnd

string

否

设置开发者隐私条款后置自定义文案。

privacyCheckedImg

string

否

默认为圆形勾选,如需自定义可传入需要的图片。

privacyOne

string

否

自定义协议1,格式:['name',url]。

privacyTwo

string

否

自定义协议2,格式:['name',url]。

showCustomView

boolean

否

是否展示自定义控件。取值:

  • true:表示展示自定义控件。

  • false(默认值):表示不展示自定义控件。

customView

object

否

添加此属性必须设置showCustomView为true,对象形式

{
  "element": "自定义节点",
  "style": "自定义样式",
  "js": "自定义交互"
}

isDialog

boolean

否

是否弹窗样式。取值:

  • true:表示登录页为弹窗。

  • false(默认值):表示登录页为全屏页面。

manualClose

boolean

否

是否手动关闭弹窗/授权页。取值:

  • true:表示登录时需要手动关闭授权页。

  • false(默认值):表示登录时自动关闭授权页。

privacyAlertIsNeedShow

boolean

否

设置二次隐私协议弹窗是否显示,点击协议链接跳转至新tab。取值:

  • true:表示展示。

  • false(默认值):表示不展示。

privacyAlertConfig

object

否

二次弹窗相关配置。配置对象详情请参见privacyAlertConfig 二次弹窗相关配置。

privacyCheckedUrl

string

否

协议勾选时的图片地址。

privacyUnCheckedUrl

string

否

协议未勾选时的图片地址。

privacyAlertConfig 二次弹窗相关配置

参数名称

参数类型

是否必填

参数说明

title

string

否

二次弹窗标题文案。默认值:请阅读并同意用户注册协议。

btnText

string

否

二次弹窗按钮文案。默认值:我已阅读并同意以上协议。

说明

privacyAlertIsNeedAutoLogin为true时,btnText不可配置,默认:同意协议并登录

privacyAlertIsNeedAutoLogin

boolean

否

点击二次弹窗同意按钮是否自动登录。取值:

  • true:表示自动登录。

  • false:表示不自动登录。

    说明

    • 当掩码未输入时,自动聚焦第一个输入框,并弹出软键盘。

    • 当四位掩码已输入时,自动触发授权页点击按钮,获取到spToken。

privacyAlertIsDialog

boolean

否

是否弹窗模式。取值:

  • true(默认值):表示是弹窗模式。

  • false:表示不是弹窗模式。

privacyAlertMaskIsNeedShow

boolean

否

是否展示蒙层。取值:

  • true:表示展示。

  • false(默认值):表示不展示。

    说明

    仅privacyAlertIsDialog为true时该参数生效。

isLoginShowPrivacyAlert

boolean

否

点击授权页(预授权)登录按钮时是否自动弹出二次弹窗。取值:

  • true:表示自动弹出。

  • false(默认值):表示不自动弹出。

closeUrl

string

否

URL图片地址,二次弹窗关闭按钮会替换成传入的图片地址。