> >

概述及资源

本文用于详细说明设备验前端相关的所有配置和接口。

条目 说明
产品名称 极验设备指纹
开发者信息 武汉极意网络科技有限公司
最新版本号(JS) gd.js
主要功能 设备指纹收集300多项设备弱特征因子数据,经过设备关系图谱、设备三维复核模型识别虚拟设备、自动化设备以及定制设备,实时输出设备风险标签和风险状态。
资源链接 JS下载地址:https://static.geetest.com/g5/gd.js

环境需求

条目
兼容性 IE10+(不含 IE9)、Chrome、Firefox、Safari、Opera、主流手机浏览器、iOS 及 Android上的内嵌Webview

本页使用 loadGeeGuard() Promise 接口。接入 IE10/IE11 时,请注意:

  • IE10/IE11 不原生支持 Promise,需要在调用 loadGeeGuard() 前加载 Promise polyfill。
  • 下方 Promise 链式调用示例使用 ES5 语法,加载 polyfill 后可直接使用;Async/Await 示例需通过项目构建工具转换为 IE10/IE11 可运行的代码。

安装

引入初始化Js

gd.js下载地址: https://static.geetest.com/g5/gd.js

如需兼容 IE10/IE11,请在调用 loadGeeGuard() 前加载 Promise polyfill;支持原生 Promise 的浏览器无需额外加载 polyfill。

<script src="https://static.geetest.com/g5/gd.js"></script>

gd.js 会不定期更新,建议直接使用线上地址。

配置参数

配置参数通过 config 对象传入,作为初始化函数 loadGeeGuard(config) 的第一个参数。

除了appId,其它均为可选配置参数(以下配置参数除非您知道如何去使用,否则不要去设置(可能在不同的场景下带来副作用)):

参数 必填 类型 说明 默认值 可选值
appId
Y
string 设备验 id,极验后台申请得到
protocol N string 协议头 默认去当前页面的协议头(本地或者混合开发一定要手动设置,否则一般会自动取到file协议) http://、https://
networkTimeout N number 设置验证过程中单个请求超时时间 10000(ms) 大于0的整数
apiServers N array 控制api请求的地址 [‘riskct.geetest.com’]
staticServers N array 控制静态资源请求的地址 [‘static.geetest.com’]
customInfo N string 唯一标记本次业务的流水号或凭证,用于防止 GeeToken 从业务场景剥离

调用初始化函数

1.在后台注册 AppID

2.初始化时appId为必传

3.调用方法

方式一:Promise 链式调用

loadGeeGuard({
appId: 'your_app_id'
})
.then(function (instance) {
return instance.get();
})
.then(function (result) {
console.log('状态:', result.status);
console.log('降级状态:', result.data.offline);
var geeToken = result.data.offline ? result.data.geeToken : result.data.respondedGeeToken;
console.log('提交令牌:', geeToken);
console.log('设备ID:', result.data.local_id);

// 发送到您的服务器
sendToServer(geeToken, result.data);
})
.catch(function (error) {
console.error('获取失败:', error);
});

方式二:Async/Await

async function getFingerprint() {
try {
const instance = await loadGeeGuard({
appId: 'your_app_id'
});

const result = await instance.get();

if (result.status === 'success') {
const { offline, respondedGeeToken, geeToken, local_id } = result.data;
const token = offline ? geeToken : respondedGeeToken;

// 发送 token 与业务数据到您的服务器
await sendToServer(token, result.data);
}
} catch (error) {
console.error('获取失败:', error);
}
}

返回格式:

// 请求成功返回示例
{
status: 'success',
data: {
offline: boolean, // 是否已降级为本地 token
respondedGeeToken: string, // 服务端返回的令牌(降级时为空)
geeToken: string, // 本地生成的加密令牌
local_id: string // 设备唯一标识
}
}

// 请求失败返回示例
{
status: "error",
data: {
code: -50101,
msg: string
}
}


常见问题

Q1: respondedGeeToken 什么时候为空?

A: SDK 自动降级为本地 token 时,respondedGeeToken 为空字符串,返回的 offline 为 true。此时应将 geeToken 提交到业务服务端。

offline 由 SDK 在返回数据中提供,仅表示是否已降级为本地 token,不属于接入配置参数,请勿将其传入 loadGeeGuard()。


获取结果

将 GeeToken 和业务数据一起提交到业务服务端,由业务服务端向极验设备指纹服务查询结果。