设备风险 SDK Web/H5 接入

更新时间:
复制为 MD 格式

在登录、注册、交易等关键页面嵌入设备风险 SDK,采集设备指纹信息以识别欺诈风险。本文介绍 Web/H5 端接入流程及接口使用方法。

前提条件

已在风险识别控制台创建 Web/H5 应用,并获取 AppKey。

步骤一:嵌入 JS SDK

在需要防护页面的 <head><body> 中添加以下脚本,引入设备风险 SDK:

<script src="https://o.alicdn.com/captcha-frontend/aliyunFP/fp.min.js"></script>
重要

因 js 文件会定期更新,为避免 js 失效影响您的使用,请不要将 js 下载到本地服务器上引入。

一个网页(包括单页应用 SPA)只需嵌入一次 JS SDK,嵌入后可在页面任意位置初始化。

步骤二:初始化 SDK

嵌入 JS SDK 后立即初始化(只需初始化一次),获取 SDK 对象:

ALIYUN_FP.use('um', (state, um) => {
  if (state === 'loaded') {
    um.init({
        //这里填写风险识别控制台申请的 AppKey
        appKey: 'your_app_key',
        //这里填写 Web 应用名称,客户自定义
        appName: 'your_web_app_name'
        //endpoints : ['https://cloudauth-device.aliyuncs.com']
    }, (state) => {
        // state = success 表示初始化成功
        console.info(state);
    });
  }
});
重要

如果不指定服务地址,则 endpoints 会读取默认配置。请务必将 endpoints 的域名添加至小程序后台白名单,以确保相关功能正常运行。

endpoints 默认服务地址:

地域

服务地址

中国内地(默认)

https://cloudauth-device.us-west-1.aliyuncs.com

init 参数说明

参数

类型

是否必填

说明

appKey

String

风险识别控制台申请的 AppKey。

appName

String

Web 应用名称,自定义。

endpoints

Array

服务地址数组。不指定时使用默认地址。

步骤三:获取 deviceToken

调用 getToken 接口获取设备指纹 deviceToken。建议在用户触发业务行为时调用,与 init 接口之间的时间间隔至少 2 秒,以确保初始化完成。

// 不传入 bizId,仅获取 deviceToken
window.z_um.getToken();

// 传入 bizId,将本次 token 和业务唯一认证 ID 绑定
window.z_um.getToken(bizId);

参数说明

参数

类型

说明

bizId

String

业务唯一认证 ID,选填。传入后可以将本次 token 与该 bizId 绑定。

完整接入示例

以下示例包含嵌入 JS SDK、初始化 SDK 和获取 deviceToken 后发送请求的完整流程:

<body>
<button type="button" id='register' onclick="login();">登录</button>
<script type="text/javascript" src="https://o.alicdn.com/captcha-frontend/aliyunFP/fp.min.js"></script>
<script>

//在页面加载的时候第一时间初始化
ALIYUN_FP.use('um', (state, um) => {
  if (state === 'loaded') {
    um.init({
        appKey: 'your_app_key',
        appName: 'your_web_app_name'
        //endpoints : ['https://cloudauth-device.aliyuncs.com']
    }, (state) => {
         //success 表示初始化成功
         console.info(state);
      });
  }
});

//处理业务函数,比如登录
function login(){
    //获取设备指纹的 deviceToken,getToken 和 init 之间最好相隔 2s 以上。
    deviceToken = window.z_um.getToken();
    //将 deviceToken 传入客户的服务后台
    var data = {
           "deviceToken": deviceToken,
           "其他业务参数":""
     };
    //发送后台请求...后台通过 deviceToken 查询风险信息
}

</script>
</body>

步骤四:服务端调用风险识别 API

将 deviceToken 与其他参数,参考服务端API接口接入,请求风险识别 API 接口进行识别。