浏览器唯一标识(浏览器指纹)fingerprintjs

目标

H5用户在未登录前,经常也需要记录游客身份,便于记录用户操作习惯,给用户推荐相关产品。H5项目是运行在浏览器环境的,浏览器没有提供相关设备ID的信息。很多项目会随机生成一个UUID,并持久化存储在localStorage,但是localStorage也有被清除的风险,就需要一个不会变也不会被清掉的值作为游客身份的唯一标识。

方案

fingerprintjs

原理

通过浏览器canvas绘画出一张指定的图,将绘画出来的图片转为base64格式,然后再将base64内容通过指定编码方式转化为fingerprintID。因为不同浏览器,由于浏览器api、版本、系统等原因,绘画出来的图片会存在非常细微的差异,人眼很难辨别,所以转换出来的base64会不一样。

安装fingerprintjs

npm i @fingerprintjs/fingerprintjs -S

使用

import FingerprintJS from "@fingerprintjs/fingerprintjs";

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

const id = await getFingerPrintID();
console.log(id)

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-02 20:18:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-02 20:18:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-02-02 20:18:01       82 阅读
  4. Python语言-面向对象

    2024-02-02 20:18:01       91 阅读

热门阅读

  1. C#实现windows系统重启、关机

    2024-02-02 20:18:01       56 阅读
  2. C# 发送邮件

    2024-02-02 20:18:01       57 阅读
  3. 《Vite 基础知识》基于 Vite 的组件库框架搭建

    2024-02-02 20:18:01       58 阅读
  4. c语言 ceil() 函数

    2024-02-02 20:18:01       55 阅读
  5. 跨域访问支持(Spring Boot、Nginx、浏览器)

    2024-02-02 20:18:01       57 阅读
  6. 手写实现call、apply和bind函数

    2024-02-02 20:18:01       49 阅读
  7. Unity之延迟函数

    2024-02-02 20:18:01       63 阅读