UNPKG

@guardhivefraudshield/device-fingerprint

Version:

device-fingerprint client side device fingerprint module

98 lines (67 loc) • 3.22 kB
# Device Fingerprint ![NPM Version](https://img.shields.io/npm/v/@guardhivefraudshield/device-fingerprint) ![NPM Downloads](https://img.shields.io/npm/dm/@guardhivefraudshield/device-fingerprint) device-fingerprint is the world's best browser fingerprinting JavaScript library. While not (yet?) as good, it's a free open source alternative to the market leading [device-fingerprint](https://github.com/guardhive/fraudshield_devicefingerprint). It is easy to use and easily extendable. device-fingerprint is open source (MIT). šŸ™ Please don't do evil. device-fingerprint is meant to be used for good. Use this to prevent scammers and spammers for example. If you see this library being used for evil, contact me. ## Simple usage from CDN Transpiled bundles are available now on [JSDelivr](https://www.jsdelivr.com/). Supported module formats: - UMD: https://cdn.jsdelivr.net/npm/@guardhivefraudshield/device-fingerprint/dist/index.umd.js - CommonJS: https://cdn.jsdelivr.net/npm/@guardhivefraudshield/device-fingerprint/dist/index.cjs.js - ESM: https://cdn.jsdelivr.net/npm/@guardhivefraudshield/device-fingerprint/dist/index.esm.js ### And on the web page: ```javascript <script src="https://cdn.jsdelivr.net/npm/@guardhivefraudshield/device-fingerprint/dist/index.umd.js"></script> <script> DeviceFingerprint.getFingerprint().then( function(data) { console.log(data); } ); </script> <!-- or --> <script> import('https://cdn.jsdelivr.net/npm/@guardhivefraudshield/device-fingerprint/dist/index.esm.js') .then(({ getFingerprint }) => { getFingerprint().then((data) => { console.log(data)}) }) </script> ``` You can also call `DeviceFingerprint.getFingerprintData()` to get a full JSON object with all its components. ## Options You can use the `setOption` method to change the behavior of the library. Currently it takes only one option. | option | type | example | what it does | | ------- | -------- | ----------------------------------- | --------------------------------------------------------------------------------------------------- | | exclude | string[] | ['webgl', 'system.browser.version'] | removes components from the fingerprint hash. An excluded top-level component improves performance. | example usage: ``` DeviceFingerprint.setOption('exclude', ['webgl', 'system.browser.version']) ``` ## Install with NPM Installing from NPM: ```bash npm install @guardhivefraudshield/device-fingerprint ``` and in your code ```javascript import { getFingerprint } from "@guardhivefraudshield/device-fingerprint"; ``` To implement device-fingerprint in a Next.js app, you can use a component [like this](examples/nextjs.tsx). ## Build it yourself Clone this repo and then run ``` yarn install yarn build ``` ## Components included in fingerprint - audio fingerprint - canvas fingerprint - webgl fingerprint - available fonts and how they render - videocard - browser languages and time zone - browser permissions - available plugins - a ton of screen details including media queries - and a bunch of smaller things