API 参考

开发者 API 文档

以下为 PHP 授权系统对外开放的 RESTful API,供开发者集成和二次开发使用。 API 服务状态:正常运行

GET POST /api/check.php 查询域名授权状态

描述

根据域名查询当前授权状态,返回是否已授权、有效期、剩余天数等信息。支持 GET 和 POST 两种请求方式。

认证方式

需要 API Key 请求时必须在 URL 参数或 POST 数据中包含 api_key 参数。

请求参数

参数名类型必填描述
domain string 要查询的域名,例如 example.com。系统会自动清理 http://、https://、www. 及路径
api_key string API 密钥,用于身份认证。通过 /api/keygen.php 生成

请求示例(GET)

GEThttps://auth.wtab.cc/api/check.php?domain=example.com&api_key=key_xxxxxxxxxxxxxxxxxxxx

请求示例(POST)

POSThttps://auth.wtab.cc/api/check.php Content-Type: application/x-www-form-urlencoded domain=example.com&api_key=key_xxxxxxxxxxxxxxxxxxxx

响应示例(已授权 · 有效期内)

{ "status": "success", "message": "已授权(有效期至 2026-08-25,剩余 30 天)", "timestamp": 1721900000, "data": { "domain": {"input": "example.com", "cleaned": "example.com", "valid_format": true}, "authorization": { "authorized": true, "status": "active", "message": "已授权(有效期至 2026-08-25,剩余 30 天)", "expires": "2026-08-25", "is_permanent": false, "is_expired": false }, "query_info": { "timestamp": "2025-07-25 14:30:00", "response_time_ms": 12.45, "total_domains": 156, "client": "WTab授权" } } }

响应示例(已授权 · 永久)

{ "status": "success", "message": "已授权(永久)", "timestamp": 1721900000, "data": { "domain": {"input": "permanent.com", "cleaned": "permanent.com", "valid_format": true}, "authorization": { "authorized": true, "status": "active", "message": "已授权(永久)", "expires": "permanent", "is_permanent": true, "is_expired": false }, "query_info": { "timestamp": "2025-07-25 14:30:00", "response_time_ms": 8.21, "total_domains": 156, "client": "WTab授权" } } }

响应示例(未授权)

{ "status": "success", "message": "未授权", "timestamp": 1721900000, "data": { "domain": {"input": "unknown.com", "cleaned": "unknown.com", "valid_format": true}, "authorization": { "authorized": false, "status": "unauthorized", "message": "未授权", "expires": null, "is_permanent": false, "is_expired": false }, "query_info": { "timestamp": "2025-07-25 14:30:00", "response_time_ms": 5.67, "total_domains": 156, "client": "WTab授权" } } }

响应示例(授权已过期)

{ "status": "success", "message": "授权已过期", "timestamp": 1721900000, "data": { "domain": {"input": "expired.com", "cleaned": "expired.com", "valid_format": true}, "authorization": { "authorized": false, "status": "expired", "message": "授权已过期", "expires": "2024-01-01", "is_permanent": false, "is_expired": true }, "query_info": { "timestamp": "2025-07-25 14:30:00", "response_time_ms": 6.89, "total_domains": 156, "client": "WTab授权" } } }

错误码说明

HTTP 状态码错误信息描述
400缺少必要参数: domain未提供 domain 参数
400域名格式无效域名格式不符合标准(如包含非法字符)
401未授权的API请求api_key 无效、已禁用或未提供(当 REQUIRE_API_KEY=true 时)
403IP xxx 未授权访问客户端 IP 不在 ALLOWED_IPS 白名单中
500授权配置文件不存在domains.php 文件丢失或路径错误
503API服务维护中API_ENABLED 设置为 false
GET /api/keygen.php 生成 API 密钥(内部工具)

描述

用于生成客户端 API Key 和 Secret Key 的内部工具。建议在生产环境中删除或通过密码保护访问。

访问方式

需要提供正确的访问密码(code 参数):

https://auth.wtab.cc/api/keygen.php?code=您的访问密码&action=generate&name=客户端名称

📋 请求参数

参数名类型必填描述
codestring访问密码(在 keygen.php 中定义)
actionstring固定值 generate
namestring客户端名称,用于标识该密钥用途

输出示例

页面会生成以下信息:

API Key: key_xxxxxxxxxxxxxxxxxxxxxxxx Secret Key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 配置示例(添加到 api/config.php): $valid_api_keys['key_xxxxxxxxxxxxxxxxxxxxxxxx'] = [ 'name' => '客户端名称', 'rate_limit' => 60, 'active' => true ];

安全提醒

高危 生产环境请务必删除或严格保护此文件!建议修改默认访问密码后使用。

CONFIG /api/config.php API 配置参数参考

说明

config.php 是 API 的核心配置文件,包含安全策略、密钥管理和响应消息定义。

主要配置项

配置项类型默认值描述
API_ENABLEDbooleantrue是否启用 API 服务
REQUIRE_API_KEYbooleantrue是否强制要求 API Key 认证
ALLOWED_IPSarray[]IP 白名单,空数组表示不限制
RATE_LIMITinteger60每分钟最大请求数限制
DOMAINS_FILEstring../config/domains.php授权域名数据文件路径

密钥管理

config.php 中通过 $valid_api_keys 数组管理客户端密钥:

$valid_api_keys['key_xxxxxxxxxxxxxxxxxxxxxxxx'] = [ 'name' => '客户端名称', // 用于日志和统计 'rate_limit' => 60, // 该客户端的请求限制(次/分钟) 'active' => true // true=启用,false=禁用 ];

响应消息定义

define('MSG_MISSING_PARAM', '缺少必要参数'); define('MSG_INVALID_DOMAIN', '域名格式无效'); define('MSG_UNAUTHORIZED', '未授权的API请求'); define('MSG_DOMAIN_NOT_FOUND', '域名未找到');