Как проверить подлинность данных пользователя (WebAppData) в мини-приложении MAX?
Зачем нужна валидация стартовых параметров
Заголовок раздела «Зачем нужна валидация стартовых параметров»При запуске мини-приложения клиентская часть получает закодированную строку для валидации данных. Эти стартовые параметры находятся в параметре WebAppData в URL-фрагменте (данные после символа #) и также доступны через свойство window.WebApp.initData.
Как подготовить строку параметров (launch_params)
Заголовок раздела «Как подготовить строку параметров (launch_params)»- Извлеките параметры платформы из URL-фрагмента (данные после символа
#) в параметреWebAppDataили получите эту строку черезwindow.WebApp.initData. - Сохраните оригинальное значение параметра
hashизWebAppDataдля последующей сверки и сформируйте из стартовых параметровinitDataстрокуlaunch_paramsдля подписи.
Как вычислить подпись HMAC-SHA256 и сверить хеш
Заголовок раздела «Как вычислить подпись HMAC-SHA256 и сверить хеш»- Создайте ключ шифрования
secret_keyс помощью алгоритма HMAC-SHA256, используя строкуWebAppDataв качестве ключа и токен вашего бота:HMAC_SHA256("WebAppData", BOT_TOKEN). - Вычислите подпись стартовых параметров
initData— подпишите подготовленную строкуlaunch_paramsс использованием ключаsecret_keyи представьте результат в виде hex-строки. - Сравните полученную hex-строку с оригинальным значением
hashизWebAppData: если подписи совпадают — данные подлинные, если нет — данные были изменены.