Fingerprint2 生成浏览器指纹应用

Fingerprint2 是一款开源的设备指纹生成器。主要用于判断用户是否是新增用户,或者判断设备是否为新增访问设备。

在项目中应用:
1、npm下载Fingerprint2库:
npm install fingerprintjs2 -S

2、在项目中引入Fingerprint2:
import Fingerprint2 from ‘fingerprintjs2’

定义生成指纹函数,设置生成指纹的排除项excludes,代码如下:

3、关于排除项excludes的字段说明:
excludes内包含的字段参数即生成的指纹不包括的内容,console.log() Fingerprint2.get()方法中的components可以看到获取的内容。

在components内可以key:value的格式push一些自定义字段

各字段代表的含义:
userAgent: navigator.userAgent
language : 语言
colorDepth: 目标设备或缓冲器上的调色板的比特深度 screen.colorDepth
deviceMemory: 设备内存
pixelRatio: 像素比
hardwareConcurrency:navigator.hardwareConcurrency 可用于运行在用户的计算机上的线程的逻辑处理器的数量
screenResolution: 屏幕宽高
availableScreenResolution: 屏幕分辨率
timezoneOffset: 本机时间与GTM时间的时差
timezone: 时区
sessionStorage: 是否支持sessionStorage
localStorage: 是否支持localStorage
indexedDb: 是否支持indexedDb
addBehavior: 是否指定AddBehavior
openDatabase: 是否支持Web SQL
cpuClass: 浏览器系统的 CPU 等级
platform: 浏览器运行的操作系统和硬件平台
doNotTrack: do-not-track设置
plugins: 浏览器插件列表
canvas: 是否支持canvas
webgl: 浏览器对webgl绘图协议的支持情况汇总 *
webglVendorAndRenderer: 显卡型号相关信息 *
adBlock: 是否安装插件adBlock(去广告)。
hasLiedLanguages: 用户是否改变了首选语言
hasLiedResolution: 用户是否改变了分辨率
hasLiedOs: 用户是否修改操作系统
hasLiedBrowser: 用户是否修改浏览器
touchSupport: 触屏检测
fonts:返回从64种字体种筛选出的可用字体
fontsFlash:Flash列表。
audio: 音频指纹
enumerateDevices:navigator.mediaDevices 支持的媒体输入输出设备信息

4、一些不足:
同型号设备同浏览器获取到的指纹会一致。
就算加网络IP字段,在同型号设备同浏览器同网络的情况下生成的指纹也会一致。

如果对你有帮助,记得点个赞噢(~~)

更多推荐

Fingerprint2 生成浏览器指纹应用