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/fingerprintjs
orfingerprintjs2
package 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-pro
And 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
requestIdleCallback
withFingerprintJS.load
. The function will return a promise that resolves with an agent object. The agent has aget
method that you will use instead of callingFingerprint2.get
directly:- 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 3 months ago