Для проверки подписи мини-приложения в Телеграме на сервере нужно выполнить следующие шаги:
- При получении данных от Телеграма о мини-приложении, в том числе их параметров, Вы получите также подпись данных. Обычно это два поля:
hash
(хэш) иhash_v2
(хэш второй версии). - Для проверки подписи на сервере вам понадобится ваш секретный ключ (например, тот, который был указан в настройках при создании мини-приложения).
- Для верификации подписи в PHP можно использовать функцию
hash_hmac
илиhash_equals
. - Пример проверки подписи для
hash
:
$secret_key = 'YOUR_SECRET_KEY'; $data = [$_GET['auth_date'], $_GET['id'], $_GET['hash']]; $check_hash = hash_hmac('sha256', implode('n', $data), $secret_key); if ($check_hash === $_GET['hash']) { // Подписи совпадают, данные можно доверять echo 'Подпись верна'; } else { // Подписи не совпадают, возможно что-то пошло не так или данные не действительны echo 'Подпись не верна'; }
- Пример проверки подписи для
hash_v2
:
$secret_key = 'YOUR_SECRET_KEY'; $data = [$_GET['auth_date'], $_GET['id'], $_GET['first_name'], $_GET['photo_url'], $_GET['hash_v2']]; $check_hash_v2 = hash_hmac('sha256', implode('n', $data), $secret_key); if (hash_equals($check_hash_v2, $_GET['hash_v2'])) { // Подписи совпадают, данные можно доверять echo 'Подпись верна'; } else { // Подписи не совпадают, возможно что-то пошло не так или данные не действительны echo 'Подпись не верна'; }
Таким образом, после проверки подписи на сервере вы можете быть уверены в целостности и подлинности данных, полученных от Телеграма о мини-приложении.