Identifying in-app browsers for Android
Is this a bug or is it actually working correctly? Telegram has added a webapp feature for bots, and for that I needed to identify users by device id. And I wanted to use fingerprintjs for this, but it didn't work out.
<script>
const fpPromise = import('https://openfpcdn.io/fingerprintjs/v4')
.then(FingerprintJS => FingerprintJS.load())
fpPromise
.then(fp => fp.get())
.then(result => {
const visitorId = result.visitorId
console.log(visitorId)
})
</script>Explanation
I opened the telegram webapp and saved the id for myself. I closed all the windows, "close all". And I logged back into telegram and opened the webapp again and this time it's returning a different id. how?
I compared this situation with other Telegram clients. For example, the official app returns id1, id2 for iMe messenger, and id3 for Plus messenger. The same settings, the same language, and the same webview engine, but why are the ids different?
Is this how it should work by default or is there really a bug here?
Source: fingerprintjs/fingerprintjs