一个面向 Twitter / X OAuth 场景的多语言示例仓库,提供 Python、JavaScript、Go、Rust、PHP、Java、C# 七种实现。
- 支持 OAuth1 与 OAuth2 授权流程
- 各语言目录内提供的是示例程序 / smoke script,不是完整自动化测试套件
- Python / JavaScript / Go / PHP / Java / Rust / C# 均已补本地 mock 回归入口;其中 Python / JavaScript / Go 已在当前宿主完成实跑验证,其余四门因缺工具链暂为静态落地
- 示例已改为通过环境变量读取 token,避免把真实凭据写进仓库
xAuth/
├── python/
│ ├── xauth.py
│ ├── test.py
│ ├── requirements.txt
│ └── README.md
├── javascript/
│ ├── xauth.js
│ ├── test.js
│ ├── package.json
│ ├── package-lock.json
│ └── README.md
├── golang/
│ ├── xauth.go
│ ├── test.go
│ ├── go.mod
│ ├── go.sum
│ └── README.md
├── rust/
│ ├── src/
│ │ ├── lib.rs
│ │ └── main.rs
│ ├── Cargo.toml
│ └── README.md
├── php/
│ ├── XAuth.php
│ ├── test.php
│ └── README.md
├── java/
│ ├── src/main/java/com/xauth/
│ │ ├── XAuth.java
│ │ ├── XAuthException.java
│ │ └── XAuthTest.java
│ ├── pom.xml
│ └── README.md
└── csharp/
├── XAuth.cs
├── Program.cs
├── XAuth.csproj
└── README.md
所有语言示例统一使用以下环境变量:
XAUTH_AUTH_TOKEN:登录后的 auth_tokenXAUTH_CLIENT_ID:OAuth2 client_idXAUTH_REDIRECT_URI:OAuth2 redirect_uriXAUTH_OAUTH1_TOKEN:可选,OAuth1 request tokenXAUTH_SCOPE:可选,默认tweet.read users.read follows.read follows.write offline.accessXAUTH_STATE:可选,默认demo-stateXAUTH_CODE_CHALLENGE:可选,默认challengeXAUTH_CODE_CHALLENGE_METHOD:可选,默认plain
可复制 .env.example 并按需导出环境变量。
真实站点样本配置已统一收口到根目录 test-sites.json;测试分层说明见 TESTING.md。
cd python
pip install -r requirements.txt
python test.pycd javascript
npm install
node test.jscd golang
go run .cd rust
cargo runcd php
php test.phpcd java
mvn package
java -cp target/xauth-1.0-SNAPSHOT-jar-with-dependencies.jar com.xauth.XAuthTestcd csharp
dotnet runcd python
python mock_test.pycd javascript
npm run test:mockcd golang
go test ./...cd php
php mock_test.phpcd java
mvn testcd rust
cargo testcd csharp/XAuth.Tests
dotnet test仓库已提供 GitHub Actions CI,当前覆盖:Python、JavaScript、Go、PHP、Java、Rust、C#。 其中 PHP / Java / Rust / C# 主要依赖 CI 进行真实工具链验证。
- 当前仓库主要是多语言实现与示例集合,缺少 mock-based 自动化测试。
- 若要用于生产环境,建议补充:
- 统一测试夹具与伪造响应
- CI 构建矩阵
- 依赖版本锁定与安全扫描
- 更明确的错误码与返回值约定
MIT License