Identifying in-app browsers for Android

Author: MkadirCreated Jul 22, 2024Updated Oct 7, 2024
Labelsbug

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