import * as Fingerprint2 from 'fingerprintjs2'
import * as UAParser from 'ua-parser-js'
function _getFingerprint () {
return new Promise((resolve, reject) => {
async function getHash () {
const options = {
excludes: {
plugins: true,
localStorage: true,
adBlock: true,
screenResolution: true,
availableScreenResolution: true,
enumerateDevices: true,
pixelRatio: true,
doNotTrack: true
},
preprocessor: (key, value) => {
if (key === 'userAgent') {
const parser = new UAParser(value)
// return customized user agent (without browser version)
return `${parser.getOS().name} :: ${parser.getBrowser().name} :: ${parser.getEngine().name}`
}
return value
}
}
try {
const components = await Fingerprint2.getPromise(options)
const values = components.map(component => component.value)
console.log('fingerprint hash components', components)
return String(Fingerprint2.x64hash128(values.join(''), 31))
} catch (e) {
reject(e)
}
}
if (window.requestIdleCallback) {
console.log('requestIdleCallback')
requestIdleCallback(async () => resolve(await getHash()))
} else {
console.log('setTimeout')
setTimeout(async () => resolve(await getHash()), 500)
}
})
}
-
-
Save zmts/b26ba9a61aa0b93126fc6979e7338ca3 to your computer and use it in GitHub Desktop.
@zmts
Of course I did, in fact when I do:
console.log(Fingerprint2);
That is what I see on the console.
So it seems that the library is there.
Thanks again for your help!
Got it working!
The issue was that when you run npm i fingerprint2 it install the version 1.8 those functions are in newer version 2.x.
I found that on this post:
fingerprintjs/fingerprintjs#409
It shouldnt install last version when you run npm i fingerprint2 ?
In any case I fix my issue.
Thanks a lot for your help much appreciated!
You have to run npm i fingerprintjs2
I mentioned it before =)
Anyway I glad that you find way to solve it
p.s.
I will clean our discussion
@zmts
I did it. But if you do that It insall an older version. Not the one that support that.
Check your package.json for sure you have version 2.somethig but if you run npm i fingerprintjs2 it will instal a version 1.8
I also encountered this problem and later solved it.
The reason is that the default installation is version 1.8. The 1.8 version does not support this method. See which version is in your package.json file. You need to install the latest version 2.0.
Use the command: npm install fingerprintjs2@2 --save
Looks weird, in my repo all fine 2.* version
In you case it could be related with old package-lock.json
@mauridirecta24 Did you install package
npm i fingerprintjs2
?