本文介绍人脸保镖方案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
Web端SDK为JS文件,会定期更新,为避免JS失效影响您的使用,请不要将JS下载到本地服务器上引入。
<script src="https://o.alicdn.com/captcha-frontend/aliyunFP/fp.min.js"></script>
初始化SDK(init)
嵌入JS SDK之后,建议在页面加载时立即初始化SDK(只需初始化一次),以获取SDK对象。
let umModule;
ALIYUN_FP.use('um', (state, um) => {
if (state === 'loaded') {
umModule = um;
um.init({
appKey: '123e4567e89b12d3a45642661417****',
appName: '【这里填Web应用名称,用户自定义】'
//endpoints : ['https://cloudauth-device.aliyuncs.com']
})
}
});
参数说明:
appKey:用于标识用户身份,阿里云分配的AppKey,请联系商务经理获取。
重要人脸保镖单独集成方案的应用,依赖业务侧具备成熟的人脸识别算法和风险策略运营体系。建议您可以先和商务经理沟通评估业务场景匹配程度。
appName:用户自定义。
endpoints(不填为默认值):
中国(默认):
https://cloudauth-device.aliyuncs.com
国际:
https://cloudauth-device.ap-southeast-1.aliyuncs.com
获取客户端Token(getToken)
获取设备指纹deviceToken,建议在发起具体业务行为(如刷脸)时调用一次。
因为数据上报可能存在延迟,请确保 SDK 的 init 接口和 getToken 接口调用时间间隔2秒以上。
调用 getDeviceToken 时建议传入 bizId,可以将本次 token 和业务唯一认证 ID 绑定,后在服务端查询结果时将ID一起传入,可进行防止Token被篡改的校验。
let bizId = '123e4567e89b12d3a45642661417****';
let deviceToken = umModule.getToken(bizId);
参数:
bizID:客户的业务ID,可用于关联业务ID和token。默认情况可以不传。
返回值:
deviceToken:返回 token 字符串信息,可用于业务后续查询阿里云人脸保镖接口。
token 字符串在网络环境良好的场景下,长度为 600 字节左右;在网络环境较差的场景下,返回的长度在 2.5K 左右。
如果业务上出现了大量的长 token,首先请确保客户端的网络是畅通的;其次,请确保 SDK 的 init 接口和 getToken 接口调用间隔在 2 秒以上。
携带Token请求服务端
成功获取deviceToken(FaceSecToken.token)后,可携带此参数请求业务服务器,由服务端查询并校验结果。具体操作,请参见服务端API接口。
完整代码示例
<!DOCTYPE html>
<html>
<script src="https://o.alicdn.com/captcha-frontend/aliyunFP/fp.min.js"></script>
<body>
<script>
let umModule;
ALIYUN_FP.use('um', (state, um) => {
if (state === 'loaded') {
umModule = um;
um.init({
appKey: '123e4567e89b12d3a45642661417****',
appName: '【这里填Web应用名称,用户自定义】'
})
}
});
//处理业务函数,比如启动认证时
function startVerify(){
//获取设备指纹的deviceToken,getToken和init之间最好相隔2s以上。建议传入bizId,防止Token被篡改。
let bizId = '123e4567e89b12d3a45642661417****'
let deviceToken = umModule.getToken(bizId);
console.log('deviceToken',deviceToken)
//将deviceToken传入客户的服务后台
let data = {
"deviceToken": deviceToken,
"其他业务参数": ""
};
// TODO 发送后台请求...后台通过deviceToken查询风险信息
}
</script>
<button type="button" id='register' onclick="startVerify();">启动认证</button>
</body>
</html>