You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PHP中验证用户是否通过Telegram移动App访问网站?

验证Telegram移动App访问的PHP实现方案

核心方法:解析HTTP User-Agent请求头

Telegram的iOS和Android移动App在加载网页时,会在User-Agent请求头中携带专属标识,我们可以通过检查这个标识来判断用户是否使用目标客户端访问。

平台专属标识特征

  • iOS Telegram App:User-Agent中包含Telegram iOS字符串
  • Android Telegram App:User-Agent中包含Telegram Android字符串

PHP代码示例

<?php
// 获取请求的User-Agent头,处理不存在的情况
$userAgent = $_SERVER['HTTP_USER_AGENT'] ?? '';

// 检测是否为Telegram移动App
$isValidClient = str_contains($userAgent, 'Telegram iOS') || str_contains($userAgent, 'Telegram Android');

if ($isValidClient) {
    // 验证通过,展示网站内容
    echo "<h1>网站内容</h1>";
    // 此处编写你的业务逻辑代码
} else {
    // 验证失败,显示引导提示
    echo "<div style='margin: 50px auto; width: 80%; text-align: center; font-size: 1.2rem;'>";
    echo "<p>请使用iOS或Android平台的Telegram移动App访问本网站</p>";
    echo "</div>";
    exit;
}
?>

兼容性与注意事项

  • PHP版本兼容:如果你的PHP版本低于8.0,str_contains无法使用,替换为strpos判断:
    $isValidClient = (strpos($userAgent, 'Telegram iOS') !== false) || (strpos($userAgent, 'Telegram Android') !== false);
    
  • 关于伪造风险:User-Agent可以被手动修改,这种验证方式适用于普通场景;如果需要更高安全性,仅当你的网页是作为Telegram Web App运行时,可以使用Telegram提供的官方验证机制(普通网页访问无法调用)。
  • 测试建议:可以通过浏览器开发者工具修改User-Agent字段模拟Telegram App访问,或直接用手机Telegram打开测试链接验证效果。

内容的提问来源于stack exchange,提问作者Jorge Borges

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 17:14:57