H5网页接入

本文介绍设备助手方案Web端(H5)接入流程。

使用须知

重要
  • 设备助手方案的应用,依赖业务侧具备成熟的人脸识别算法和风险策略运营体系。建议您可以先和商务经理沟通评估业务场景匹配程度。

  • 为帮助落实针对您产品集成第三方SDK情况所应履行的隐私合规义务,降低隐私违规风险,进而实现您产品合规运营的业务目标,请您务必确保选用阿里云文档中心官网发布的最新版本产品。在使用设备助手前,请您务必仔细了解个人信息处理规定及《SDK隐私权政策》。

在需要保护的页面引入JS SDK,注意:一个网页(包括单页应用)引入一次即可;

兼容性:

  • PC:Chrome(60+)、Firefox(60+)、Edge(20+)、Safari(11+)、360(10+)、QQ(4+)、IE 9+ 等。

  • 移动端:Chrome(60+)、UC(12+)、Safari(11+)、夸克、主流手机厂商自带浏览器、原生Webview(安卓4+)等。

接入步骤

引入JS SDK

重要

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

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

初始化SDK(init)

引入JS SDK之后,建议在页面加载时立即初始化SDK(只需初始化一次),以获取SDK对象。

ALIYUN_FP.use('um', (state, um) => {
  if (state === 'loaded') {
    um.init({
        appKey: '【这里填写阿里云分配的AppKey】',
        appName: '【这里填Web应用名称,客户自定义】',
        endpoints : ['https://cloudauth-device.aliyuncs.com']
    })
  }
});

参数说明

  • appKey:用于标识用户身份,阿里云分配的AppKey,请联系商务经理获取。

    重要

    设备助手方案的应用,依赖业务侧具备成熟的人脸识别算法和风险策略运营体系。建议您可以先和商务经理沟通评估业务场景匹配程度。

  • appName:用户自定义。

  • endpoints(不填为默认值):https://cloudauth-device.aliyuncs.com

获取客户端Token(getToken)

获取设备指纹deviceToken,建议在发起具体业务行为(如刷脸)时调用一次。

重要
  • 因为数据上报可能存在延迟,请确保 SDK 的 init 接口和 getToken 接口调用时间间隔2秒以上

  • 调用 getToken 时建议传入 bizId,可以将本次 token 和业务唯一认证 ID 绑定,后在服务端查询结果时将ID一起传入,可进行防止Token被篡改的校验。

  • 三种调用方式,任选其一即可。

    // 1. 直接调用 getToken 接口
    window.z_um.getToken();
    
    // 2. 传入本次认证唯一ID
    let bizId = '<Your bizId>';
    let deviceToken = window.z_um.getToken(bizId);
    
    //3. 推荐方式,传入视频流。
    // 此种调用方式 getToken 建议在获取到摄像头权限后再调用。
    // 传入本次认证唯一ID和 mediaStream。 mediaStream为视频流对象(用于获摄像头特征),可直接使用 navigator.mediaDevices.getUserMedia 方法的返回值。
    let bizStr = await window.z_um.getCameraInfo(mediaStream);
    window.z_um.getToken(bizId, bizStr);
  • 参数

    • bizId:客户的业务ID,可用于关联业务IDtoken。默认情况可以不传。

    • bizStr:CameraInfo,通过getCameraInfo方法获取,用于提取摄像头特征。

  • 返回值

    deviceToken:返回 token 字符串信息,可用于业务后续查询阿里云设备助手接口。

重要

token 字符串长度为 600 字节左右。

如果业务上出现了大量长 token,首先请确保客户端的网络是畅通的;其次,请确保 SDK 的 init 接口和 getToken 接口调用间隔在 2 秒以上。

携带Token请求服务端

成功获取deviceToken(FaceSecToken.token)后,可携带此参数请求业务服务器,由服务端查询并校验结果。具体操作,请参见服务端API接口

完整代码示例

<body>
<button type="button" id='register' onclick="getToken();">获取Token</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: '【这里填写阿里云分配的AppKey】',
        appName: '【这里填Web应用名称,客户自定义】',
        endpoints : ['https://cloudauth-device.aliyuncs.com']
    }
  }
});


//处理业务函数,比如完成认证时
function getToken(){
    var bizId = 'xxxxxxxx';
    //获取设备指纹的deviceToken,getToken和init之间最好相隔2s以上。
    //建议传入本次认证业务唯一ID,生成的token可以和bizId绑定。
    var deviceToken = window.z_um.getToken(bizId);
    //将deviceToken传入客户的服务后台
    var data = {
           "deviceToken": deviceToken,
           "其他业务参数": ""
     };
    //发送后台请求...后台通过deviceToken查询风险信息
}

</script>
</body>