用户未登录下前端获得设备的唯一标识

3,711 阅读2分钟

在前端中获取设备的唯一标识通常可以使用以下两种方式:

1. 使用navigator.userAgent

navigator.userAgent 是一个字符串,其中包含了一些浏览器和设备相关的信息。通常,我们可以从这个字符串中解析出设备的一些信息,比如操作系统、浏览器版本等等,以此来生成一个唯一标识。 `const uniqueId = btoa(navigator.userAgent);

console.log(uniqueId); `

在上述代码中,我们先使用 btoa() 方法将 navigator.userAgent 进行 base64 编码,然后再截取前 10 个字符作为唯一标识。

注意,由于 navigator.userAgent 中包含了大量信息,因此唯一标识的生成可能会受到设备和浏览器的影响而产生变化,因此并不是完全可靠的方式。

2. 使用FingerprintJS

FingerprintJS 是一个基于浏览器指纹识别技术的库,可以帮助我们生成设备的唯一标识。它通过收集一系列设备和浏览器的信息,包括但不限于浏览器版本、屏幕分辨率、插件信息、系统语言等等,来生成一个唯一标识。

使用 FingerprintJS 生成唯一标识的示例代码如下: `import FingerprintJS from '@fingerprintjs/fingerprintjs';

async function generateUniqueId() {

const fp = await FingerprintJS.load();

const result = await fp.get();

return result.visitorId;

}

generateUniqueId().then((uniqueId) => {

console.log(uniqueId);

}); `

在上述代码中,我们先使用 FingerprintJS.load() 方法加载 FingerprintJS 库,然后调用 fp.get() 方法来生成唯一标识。

注意,由于 FingerprintJS 库收集的信息量较大,因此生成的唯一标识是较为可靠的。但是也有一些用户会使用一些特殊的设备或浏览器,禁止了一些信息的收集,因此也不能保证百分百可靠。

总的来说,获取设备的唯一标识并不是一个简单的任务,这两种方式都只是提供了一种思路。具体的实现方式应根据实际需求来进行选择和调整。

注意:需要引入依赖npm install @fingerprintjs/fingerprintjs