Есть несколько способов определить устройство пользователя без использования user-agent.
1. Отпечаток устройства (Device fingerprinting): Этот метод основывается на сборе различных характеристик устройства, таких как операционная система, версия браузера, разрешение экрана, язык и другие параметры. Эти характеристики в совокупности могут быть достаточно уникальными для идентификации устройства.
2. Cookies: Вы можете создать и использовать уникальный идентификатор устройства в форме cookie. При первом посещении сайта вы можете создать новый идентификатор и сохранить его в cookie браузера. Затем вы можете использовать этот идентификатор для идентификации устройства в дальнейшем.
3. Логин пользователя: Если у вас есть система аутентификации и пользователи входят на вашем сайте, вы можете идентифицировать устройство пользователя через его логин. Вы можете привязать токен или идентификатор устройства к учетной записи пользователя.
VKontakte, вероятно, использует комбинацию этих методов, чтобы определить устройство пользователя и создавать уникальные записи токенов. Вместо user-agent они, скорее всего, используют отпечаток устройства и другие характеристики, чтобы идентифицировать устройство пользователя и создать уникальный токен. Они также могут использовать cookies или привязку к учетной записи пользователя для сохранения информации о токенах и устройствах.