六种语言,接口完全一致,四个零运行时依赖。源码包内含完整测试,可直接读、直接改。
| 语言 | 运行时依赖 | 源码包 | 其他产物 |
|---|---|---|---|
| Python 3.8+ |
零依赖 stdlib urllib |
python-0.1.0.tar.gz | 含 pyproject.toml |
| Node.js / TypeScript Node 18+ |
零依赖 全局 fetch |
js-0.1.0.tar.gz | 已编译 dist + 类型声明 |
| Go 1.21+ |
零依赖 stdlib |
go-0.1.0.tar.gz | — |
| Rust | ureq + serde_json | rust-0.1.0.tar.gz | — |
| Java 11+ |
零依赖 java.net.http |
java-0.1.0.tar.gz | jar · sources jar |
校验和:SHA256SUMS
(shasum -a 256 -c SHA256SUMS 可批量核对)
tar xzf simple-verify-sdk-python-0.1.0.tar.gz
# 把 python/simple_verify.py 放进项目,或 pip install ./python
from simple_verify import SimpleVerify, SimpleVerifyError
sv = SimpleVerify("你的 appsecret")
r = sv.verify(token, remoteip=client_ip)
tar xzf simple-verify-sdk-js-dist-0.1.0.tar.gz
# 或直接把 js/src/index.ts 放进你的 TS 项目
import { SimpleVerify } from "@loadren/simple-verify";
const sv = new SimpleVerify(process.env.APP_SECRET);
const r = await sv.verify(token, clientIp);
tar xzf simple-verify-sdk-go-0.1.0.tar.gz
# 复制 go/ 目录进项目,或作为本地 module 引用
sv := simpleverify.New(os.Getenv("APP_SECRET"))
result, err := sv.Verify(ctx, token, clientIP)
tar xzf simple-verify-sdk-rust-0.1.0.tar.gz
# Cargo.toml: simple-verify-sdk = { path = "./rust" }
let sv = SimpleVerify::new(&secret);
let r = sv.verify(&token, Some(&client_ip))?;
# 方式一:直接用 jar
javac -cp simple-verify-0.1.0.jar MyApp.java
# 方式二:源码包内含 pom.xml(无第三方依赖),也可用 build.sh 纯 javac 构建
SimpleVerify sv = new SimpleVerify(System.getenv("APP_SECRET"));
VerifyResult r = sv.verify(token, clientIp);
| 行为 | 说明 |
|---|---|
| 构造 | SimpleVerify(secret, endpoint?, timeout?),endpoint 默认 https://verify-api.loadren.com,超时默认 2 秒。 |
| 校验 | verify(token, remoteip?) 返回 success / score / hostname / challenge_ts / error_codes / debug。 |
| 网络故障 | 抛出独立错误类型(SimpleVerifyError 等),与"校验被拒"严格区分——fail-open 决策留给你。 |
| 本地短路 | 空令牌、超长令牌直接返回拒绝,不发网络请求。 |