Migrating from FingerprintJS v2 to Pro
Update from FingerprintJS Open-Source version 2 to Fingerprint version 3
How to update from Fingerprintjs Open-Source v2 to Fingerprint Pro:
-
Sign up on dashboard.fingerprint.com/signup, create an account, and get a public API key.
-
Change the
@fingerprintjs/fingerprintjsorfingerprintjs2package to@fingerprintjs/fingerprintjs-pro. If you use NPM, run:npm remove @fingerprintjs/fingerprintjs fingerprintjs2 @types/fingerprintjs__fingerprintjs @types/fingerprintjs2 npm install @fingerprintjs/fingerprintjs-pro# Don't mind the "This module isn't specified in a package.json file" error yarn remove @fingerprintjs/fingerprintjs fingerprintjs2 @types/fingerprintjs__fingerprintjs @types/fingerprintjs2 yarn add @fingerprintjs/fingerprintjs-proAnd replace the package name in your JavaScript/TypeScript code:
- import Fingerprint2 from '@fingerprintjs/fingerprintjs' - import Fingerprint2 from 'fingerprintjs2' + import FingerprintJS from '@fingerprintjs/fingerprintjs-pro'If you use a CDN, switch to our CDN:
- <script src="https://cdn.jsdelivr.net/npm/fingerprintjs2@2/dist/fingerprint2.min.js"></script> + <script src="https://fpjscdn.net/v3/<<browserToken>>/iife.min.js"></script> <script> // ... </script> -
Replace
requestIdleCallbackwithFingerprintJS.load. The function will return a promise that resolves with an agent object. The agent has agetmethod that you will use instead of callingFingerprint2.getdirectly:- requestIdleCallback(() => { - Fingerprint2.get(result => { + const fpPromise = FingerprintJS.load() + fpPromise + .then(fp => fp.get()){ + .then(result => { // Handle the result }) - }) -
Add the public API key to the
FingerprintJS.load()configuration:- FingerprintJS.load() + FingerprintJS.load({ apiKey: '<<browserToken>>' })Put the key to the agent script URL: https://fpjscdn.net/v3/YOUR_PUBLIC_KEY For example: https://fpjscdn.net/v3/token https://fpjscdn.net/v3/token/iife.min.js -
Use the visitor identifier directly (the raw components aren't provided):
fp.get().then(result => { - const values = result.map(function (component) { return component.value }) - const visitorId = Fingerprint2.x64hash128(values.join(''), 31) + const visitorId = result.visitorId }) -
Remember that the support of Internet Explorer 10 and older has been dropped. Some old browsers like Internet Explorer 11 and Android Browser 4.1 require a Promise polyfill. See the browser support guide to get a list of the supported browsers.
Updated 10 months ago
