021 / telegram-validation
用于验证Telegram回调的库
v5.0.1
2024-04-12 11:48 UTC
Requires
- php: ^8.1|^8.2|^8.3
- 021/api-entity: ^2.0.1
Requires (Dev)
- phpunit/phpunit: ^10.5
README
此库有助于验证来自Telegram的回调。
安装
通过Composer安装
composer require 021/telegram-validation
使用
验证
Web应用初始化数据
机制:通过Mini App接收的数据验证
$token = 'YOUR_BOT_TOKEN'; // Short with helper function use function Telegram\Validation\Helpers\validate_wa_init_data; $isValid = validate_wa_init_data('query_id=...', $token); // Expanded with class use Telegram\Validation\WebAppInitData; $validator = new WebAppInitData($token); $isValid = $validator->validate('query_id=...');
登录小部件
机制:通过检查授权
$token = 'YOUR_BOT_TOKEN'; $input = ['auth_date' => 666, /*...*/]; // request input // Short with helper function use function Telegram\Validation\Helpers\validate_login_widget; $isValid = validate_login_widget($input, $token); // Expanded with class use Telegram\Validation\LoginWidget; $validator = new LoginWidget($token); $isValid = $validator->validate($input);
解析
021/telegram-validation还提供了解析数据到对象的类。
Web应用初始化数据
$token = 'YOUR_BOT_TOKEN'; /** * @link https://core.telegram.org/bots/webapps#webappinitdata * @var \Telegram\Validation\Entities\WebAppInitData $webAppInitData */ $webAppInitData; // Short with helper function use function Telegram\Validation\Helpers\parse_wa_init_data; $webAppInitData = parse_wa_init_data('query_id=...', $token); // Expanded with class use Telegram\Validation\WebAppInitData; $validator = new WebAppInitData($token); $webAppInitData = $validator->extract('query_id=...'); // Accessing fields echo $webAppInitData->queryId; // query_id echo $webAppInitData->chat->username; // chat.username echo $webAppInitData->chatType; // chat_type // ... any other fields
登录小部件
$token = 'YOUR_BOT_TOKEN'; $input = ['auth_date' => 666, /*...*/]; // request input /** * @link https://core.telegram.org/widgets/login#receiving-authorization-data * @var \Telegram\Validation\Entities\LoginWidgetCallback $loginWidget */ $loginWidget; // Short with helper function use function Telegram\Validation\Helpers\parse_login_widget; $loginWidget = parse_login_widget($input, $token); // Expanded with class use Telegram\Validation\LoginWidget; $validator = new LoginWidget($token); $loginWidget = $validator->extract($input); // Accessing fields echo $loginWidget->firstName; // first_name echo $loginWidget->lastName; // last_name /** @var \Carbon\CarbonInterface $carbon */ $carbon = $loginWidget->authDate; // auth_date
安全
如果您在021/telegram-validation中发现安全漏洞,请创建一个问题并提供详细描述。所有安全漏洞都将立即修复。Pull requests也欢迎。
帮助
如果您加入项目的开发和改进,我们将非常高兴。您可以创建一个问题和/或一个pull request。
许可证
021/telegram-validation - 是MIT许可证下的开源软件。有关更多信息,请参阅许可证文件。