diff --git a/README.md b/README.md index d15dbf0..6d86e5e 100644 --- a/README.md +++ b/README.md @@ -4,11 +4,11 @@ Перевірка даних відбувається шляхом шифрування отриманих, необроблених, даних користувача та звірка з хешем який нам надає телеграм. Провалену перевірку можна прирівняти з можливою спробою обходу або злому системи. -Необроблені дані знаходяться в полі `window.Telegram.WebApp.initData` - це поле доступне на фронтенді, після виконання дій описаних [тут](https://core.telegram.org/bots/webapps#initializing-web-apps). Саме дані з цього поля треба передати на бекенд для перевірки. +Пакет дозволяє здійснити перевірту деяких типів користувачів. А саме, перевірка даних з поля `window.Telegram.WebApp.initData` котра стає доступне на фронтенді, після виконання дій описаних [тут](https://core.telegram.org/bots/webapps#initializing-web-apps). А також перевірки користувача який здійснює логін за допомогою [Telegram Login Widget](https://core.telegram.org/widgets/login) -`ПОПЕРЕДЖЕННЯ`: Даним із цього поля не можна довіряти. Ви повинні використовувати лише дані з initData на сервері бота і лише після їх перевірки. +`ПОПЕРЕДЖЕННЯ`: Даним із цих полів не можна довіряти. Ви повинні використовувати їх лише на сервері бота і лише після їх перевірки. -Щоб отримати змогу швидко та безпечно перевірити дані. Треба виконати наступні дії +Щоб отримати змогу швидко та безпечно перевірити дані, рекомендуємо виконати наступні дії ## Встановлення TgWebValid Встановити пакет TgWebValid можна через пакетний менеджер [composer](https://getcomposer.org/) виконавши команду @@ -18,7 +18,7 @@ composer require tg/tgwebvalid Ми йдемо слідом за технологіями, тому пакет починає працювати з версії `PHP >= 8.0.2`. ## Як користуватись -Для початку використання достатньо передати рядок з необробленими даними в конструктор класу TgWebValid. +Перед початком використання достатньо в конструктор класу TgWebValid передати токен від бота, від імені якого здійснюється перевірка. ```php isValid(TG_BOT_TOKEN)) { +if($tgWebValid->isValid(INIT_DATA)) { // перевірка успішно пройдена } else { // провалена перевірка } ``` -Результатом перевірки буде повернуто тип Boolean зі значенням true/false. +Якщо ж у вас є потреба перевірити користувача який здійснює вхід в систему за допомогою [Telegram Login Widget](https://core.telegram.org/widgets/login), вам слід скористатись методом `isLoginValid` який також аргументом приймає необроблені дані користувача для перевірки +```php +const LOGIN_USER_DATA = [ + 'auth_date' => 1679130118, + 'first_name' => 'Сергій', + // ... та решта полів +]; + +if($tgWebValid->isLoginValid(LOGIN_USER_DATA)) { + // перевірка успішно пройдена +} else { + // провалена перевірка +} +``` +У всіх випадках, результатом перевірки буде повернуто тип Boolean зі значенням true/false. У разі успішного проходження перевірки користувач вважається верифікованим та вірним. Тому можемо спокійно користуватись його даними. @@ -60,6 +73,9 @@ $receiver = $tgWebValid->initData->receiver; // Об’єкт, що містить дані про чат $chat = $tgWebValid->initData->chat; +// Об’єкт, що містить дані користувача, перевіреного методом isLoginValid +$chat = $tgWebValid->user; + // та багато іншого ``` Зверніть увагу що певні дані присутні в залежності від ситуації, тому інколи можуть мати значення null замість об'єкта даних. Більш детальніше можна ознайомитись в [офіційній документації Telegram](https://core.telegram.org/bots/webapps#webappinitdata)