在微信小程序中接入设备风险 SDK,采集设备指纹生成 deviceToken。将 deviceToken 上报至业务服务器后,可联动风险识别服务检测注册、登录、营销活动等场景中的黑产设备风险。本文介绍 SDK 的下载、集成、初始化及 deviceToken 获取方法。
背景信息
微信小程序 SDK 是专为小程序环境设计的设备风险识别工具,通过嵌入 SDK,开发者可以快速集成设备指纹能力,实时获取设备信息并联动风险识别服务。该 SDK 支持多种场景,如注册、登录、营销活动等,有效防范黑产攻击,提升业务安全性。
SDK 集成指南
-
下载并引入 SDK
从风险识别控制台下载微信小程序 SDK。建议在小程序首页(index 页面)引入,并将 AliyunFP 对象全局挂载,便于其他页面调用。
import * as AliyunFP from './feilin.weixin.xxxx.js'; const app = getApp(); app.AliyunFP = AliyunFP; -
添加 canvas 节点
在页面的 axml 文件中添加
feilin-view节点,用于 SDK 采集设备指纹。<view> <view> 业务的 UI 布局 </view> <view id="feilin-view" style="position:fixed;top:99999rpx;"> <canvas id="feilin-canvas" type="2d" style="width:150px;height:150px;"></canvas> <canvas id="feilin-webgl" type="webgl" style="width:150px;height:150px;"></canvas> </view> </view> -
初始化 SDK
在页面的
onReady生命周期中调用AliyunFP.init()初始化 SDK。appKey 用于标识用户身份,可在阿里云控制台的设备 App 管理申请获取。
Page({ onReady() { AliyunFP.init( { appKey: '用于标识用户身份,可在阿里云控制台的设备 App 管理申请获取', appName: '小程序应用名称', openId: '微信小程序用户 ID(建议传入)', endpoints: [ 'https://cloudauth-device.aliyuncs.com' ], }, (initStatus, deviceToken) => { console.log("initStatus:" + initStatus + " deviceToken:" + deviceToken); } ); } });重要未指定 endpoints 时将使用默认服务地址。请务必将 endpoints 中的域名添加至小程序后台的服务器域名白名单,否则 SDK 无法正常通信。
endpoints 默认服务地址:
地域
服务地址
中国内地(默认)
-
获取 deviceToken
推荐通过
AliyunFP.init的回调获取 deviceToken。也可在用户触发业务行为(如注册、登录、订购等)时主动调用AliyunFP.getToken获取。两次调用之间需间隔至少 1 秒。AliyunFP.getToken() // 传入 bizId,将本次 token 与业务唯一认证 ID 绑定 AliyunFP.getToken(bizId)
接入示例
页面结构(axml)
<view>
<view class="page-description">
{{ message }}
</view>
<button type="primary" onTap="onLogin">
登录
</button>
<view id="feilin-view" style="position: fixed; top: 99999rpx;">
<canvas id="feilin-canvas" type="2d" style="width: 150px; height: 150px;"></canvas>
<canvas id="feilin-webgl" type="webgl" style="width: 150px; height: 150px;"></canvas>
</view>
</view>
逻辑实现(js)
import * as AliyunFP from './feilin.weixin.xxxx.js';
const app = getApp();
app.AliyunFP = AliyunFP;
Page({
onReady() {
// 页面渲染完成后初始化 SDK
AliyunFP.init({
appKey: '用于标识用户身份,可在阿里云控制台的设备 App 管理申请获取',
appName: '小程序应用名称',
openId: '微信小程序用户 ID(建议传入)',
endpoints: ['https://cloudauth-device.aliyuncs.com'],
}, (initStatus, deviceToken) => {
console.log("initStatus:" + initStatus + " deviceToken:" + deviceToken);
});
},
onLogin() {
// 用户点击登录按钮时获取 deviceToken,随业务请求上报
const deviceToken = AliyunFP.getToken();
const data = {
"deviceToken": deviceToken,
"其他业务参数": ""
};
// 将 deviceToken 随业务请求发送至服务端,服务端通过 deviceToken 查询设备风险
}
});
调用风险识别 API 接口
将 deviceToken 与其他参数,参考服务端API接口接入,请求风险识别 API 接口进行识别。