Для проверки подписи мини-приложения в Телеграме на сервере нужно выполнить следующие шаги:
1. При получении данных от Телеграма о мини-приложении, в том числе их параметров, Вы получите также подпись данных. Обычно это два поля: hash
(хэш) и hash_v2
(хэш второй версии).
2. Для проверки подписи на сервере вам понадобится ваш секретный ключ (например, тот, который был указан в настройках при создании мини-приложения).
3. Для верификации подписи в PHP можно использовать функцию hash_hmac
или hash_equals
.
4. Пример проверки подписи для 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 'Подпись не верна'; }
5. Пример проверки подписи для 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 'Подпись не верна'; }
Таким образом, после проверки подписи на сервере вы можете быть уверены в целостности и подлинности данных, полученных от Телеграма о мини-приложении.