号码认证集成文档
本文介绍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>注意!!!
不可在业务代码中覆盖
window.uVerify变量。未开启移动数据网络的用户无法通过一键登录完成认证:认证之前确保您的终端设备已关闭Wi-Fi连接且开启了SIM卡的4G移动数据网络(支持中国联通、中国移动的3G网络,但接口耗时会增加)。
因h5一键登录获取手机号必须在关闭wifi开启流量网络场景下,建议用户在window.uVerify回调失败时自行进行业务处理,如转为短信验证码登录等托底方式。
2. 创建应用
前往智能认证后台创建一个h5类型应用,并开通智能认证产品。创建并开通成功后可在应用列表中查看。
示例图1

示例图2

3. 配置方案及密钥
创建成功的应用可在列表中查看,选择此h5应用的配置方案。来到配置方案页后选择添加方案。
在应用列表中找到你的应用,选择配置方案,如下图

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

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

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

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

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去调用服务端接口换号获取明文手机号。

二、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 | 返回的状态码。
|
spToken | string | 运营商一键登录Token,可在服务端调用接口进行取号。 |
clearInput | function | 调用清空当前所有输入框,将光标置于第一个输入框。 |
focusOn | function | 入参为:1-4,将光标置于入参对应下标的输入框内。 |
setMessage | function | 设置弹出Toast提示框(有默认样式)。入参格式: |
vender | string | 运营商信息:
|
授权页配置项
对应SDK配置项中的authPageOption各配置项。
参数名称 | 参数类型 | 是否必填 | 参数说明 |
mount | string | 否 | 指定挂载节点的ID,默认挂载到body标签。 |
navText | string | 否 | 导航栏标题文案,默认值:本机号码登录。 |
navBackImg | string | 否 | 导航栏返回按钮图片的src链接。 |
subtitle | string | 否 | 副标题导航栏下面的说明文案,不传则不显示。 |
isHideLogo | boolean | 否 | 是否隐藏Logo。取值:
|
logoImg | string | 否 | Logo图片设置,默认值:友盟Logo。 |
numberLabel | string | 否 | 手机号码前面的文案或图片,不传则不展示。 |
btnText | string | 否 | 按钮文案,默认值:登录。 |
isFocus | boolean | 否 | 进入授权页面,是否聚焦光标。取值:
|
agreeSymbol | string | 否 | 协议和协议之间的连接符号,默认用“和”连接。 |
privacyVenderIndex | number | 否 | 运营商协议的位置,默认为2。
|
vendorPrivacyPrefix | string | 否 | 设置运营商协议前缀符号,仅支持设置如下字符中的任意一个,如<>、()、《》、【】、『』、[]、() |
vendorPrivacySuffix | string | 否 | 设置运营商协议后缀符号,仅支持设置如下字符中的任意一个,如<>、()、《》、【】、『』、[]、() |
privacyBefore | string | 否 | 设置开发者隐私条款前置自定义文案。默认:我已阅读并同意。 |
privacyEnd | string | 否 | 设置开发者隐私条款后置自定义文案。 |
privacyCheckedImg | string | 否 | 默认为圆形勾选,如需自定义可传入需要的图片。 |
privacyOne | string | 否 | 自定义协议1,格式:['name',url]。 |
privacyTwo | string | 否 | 自定义协议2,格式:['name',url]。 |
showCustomView | boolean | 否 | 是否展示自定义控件。取值:
|
customView | object | 否 | 添加此属性必须设置showCustomView为true,对象形式 |
isDialog | boolean | 否 | 是否弹窗样式。取值:
|
manualClose | boolean | 否 | 是否手动关闭弹窗/授权页。取值:
|
privacyAlertIsNeedShow | boolean | 否 | 设置二次隐私协议弹窗是否显示,点击协议链接跳转至新tab。取值:
|
privacyAlertConfig | object | 否 | 二次弹窗相关配置。配置对象详情请参见privacyAlertConfig 二次弹窗相关配置。 |
privacyCheckedUrl | string | 否 | 协议勾选时的图片地址。 |
privacyUnCheckedUrl | string | 否 | 协议未勾选时的图片地址。 |
privacyAlertConfig 二次弹窗相关配置
参数名称 | 参数类型 | 是否必填 | 参数说明 |
title | string | 否 | 二次弹窗标题文案。默认值:请阅读并同意用户注册协议。 |
btnText | string | 否 | 二次弹窗按钮文案。默认值:我已阅读并同意以上协议。 说明 privacyAlertIsNeedAutoLogin为true时,btnText不可配置,默认:同意协议并登录 |
privacyAlertIsNeedAutoLogin | boolean | 否 | 点击二次弹窗同意按钮是否自动登录。取值:
|
privacyAlertIsDialog | boolean | 否 | 是否弹窗模式。取值:
|
privacyAlertMaskIsNeedShow | boolean | 否 | 是否展示蒙层。取值:
|
isLoginShowPrivacyAlert | boolean | 否 | 点击授权页(预授权)登录按钮时是否自动弹出二次弹窗。取值:
|
closeUrl | string | 否 | URL图片地址,二次弹窗关闭按钮会替换成传入的图片地址。 |