021/telegram-validation

用于验证Telegram回调的库

v5.0.1 2024-04-12 11:48 UTC

This package is auto-updated.

Last update: 2024-09-12 12:52:42 UTC


README

Testing Status Minimum PHP Version Latest version License

此库有助于验证来自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许可证下的开源软件。有关更多信息,请参阅许可证文件