官方网站

FingerprintJS 是一个浏览器指纹识别库,通过采集浏览器环境信息(UA、Canvas、WebGL、字体、时区等)生成稳定的 visitorId,可用于无感防刷、风险控制、账号安全等场景。

安装

1
npm i @fingerprintjs/fingerprintjs

使用

1
2
3
4
5
6
7
8
9
10
11
import FingerprintJS from "@fingerprintjs/fingerprintjs";

const getFingerPrintID = async () => {
const fpPromise = await FingerprintJS.load();
const result = await fpPromise.get();
return result.visitorId;
},

setTimeout(() => {
console.log(await getFingerPrintID())
}, 1000);

代码说明

  • FingerprintJS.load():加载指纹计算模块,只需加载一次,可存入 Promise 复用
  • fpPromise.get():返回指纹结果对象,其中 visitorId 即为该浏览器的唯一标识
  • 同一浏览器在不同时间不同页面获取的 visitorId 保持一致,但清除浏览器数据或更换设备后可能变化

应用场景

  • 无感登录:记录用户首次访问生成的 visitorId,下次访问自动识别老用户
  • 防刷验证:投票、抽奖、评论等场景通过 visitorId 限制同一设备操作次数
  • 风控识别:检测批量注册、撞库、爬虫等异常行为

Cookie 存储在浏览器本地,用户清除浏览器数据后即失效,且可被隐私模式拦截;而 FingerprintJS 通过硬件与浏览器环境特征生成标识,即使清除 Cookie 也能再次识别,稳定性更高。

CodePen 示例