企业微信验证专用跳板
This commit is contained in:
136
WeCom/README.md
Normal file
136
WeCom/README.md
Normal file
@@ -0,0 +1,136 @@
|
||||
# WeCom Server
|
||||
|
||||
企业微信验证服务器 - 基于 Rust 和 Axum 框架实现的 Web 服务器,用于企业微信应用的服务器验证。
|
||||
|
||||
## 功能特性
|
||||
|
||||
- 基于 Axum 0.7 框架的高性能 Web 服务器
|
||||
- 企业微信服务器验证接口
|
||||
- SHA1 签名验证
|
||||
- 异步处理(基于 Tokio)
|
||||
|
||||
## 技术栈
|
||||
|
||||
- **Rust** 2021 Edition
|
||||
- **Axum** 0.7 - Web 框架
|
||||
- **Tokio** 1.0 - 异步运行时
|
||||
- **Serde** 1.0 - 序列化/反序列化
|
||||
- **SHA1** 0.10 - 哈希算法
|
||||
- **Tracing** 0.1 - 日志追踪
|
||||
|
||||
## 项目结构
|
||||
|
||||
```
|
||||
WeCom/
|
||||
├── Cargo.toml # 项目配置和依赖
|
||||
├── README.md # 项目说明文档
|
||||
└── src/
|
||||
└── main.rs # 主程序入口
|
||||
```
|
||||
|
||||
## 安装
|
||||
|
||||
确保已安装 Rust 工具链(建议使用 rustup):
|
||||
|
||||
```bash
|
||||
rustup update stable
|
||||
```
|
||||
|
||||
克隆项目后,进入项目目录:
|
||||
|
||||
```bash
|
||||
cd d:\Projects\trunk\JoyD\WeCom
|
||||
```
|
||||
|
||||
## 运行
|
||||
|
||||
开发模式运行:
|
||||
|
||||
```bash
|
||||
cargo run
|
||||
```
|
||||
|
||||
生产构建:
|
||||
|
||||
```bash
|
||||
cargo build --release
|
||||
```
|
||||
|
||||
运行生产版本:
|
||||
|
||||
```bash
|
||||
.\target\release\wecom_server.exe
|
||||
```
|
||||
|
||||
## 配置
|
||||
|
||||
在 `src/main.rs` 中修改以下配置:
|
||||
|
||||
```rust
|
||||
const WECOM_TOKEN: &str = "mytoken123456"; // 企业微信后台填写的 Token
|
||||
```
|
||||
|
||||
服务器默认监听地址:`127.0.0.1:8000`
|
||||
|
||||
## API 接口
|
||||
|
||||
### GET /wecom
|
||||
|
||||
企业微信服务器验证接口。
|
||||
|
||||
**请求参数:**
|
||||
|
||||
- `msg_signature` - 消息签名
|
||||
- `timestamp` - 时间戳
|
||||
- `nonce` - 随机数
|
||||
- `echostr` - 随机字符串
|
||||
|
||||
**响应:**
|
||||
|
||||
- 验证成功:返回 `echostr` 原值
|
||||
- 验证失败:返回 `"invalid"`
|
||||
|
||||
## 验证逻辑
|
||||
|
||||
1. 接收企业微信发送的验证请求
|
||||
2. 将 `token`、`timestamp`、`nonce`、`echostr` 四个参数进行字典序排序
|
||||
3. 将排序后的字符串拼接成一个字符串
|
||||
4. 对拼接后的字符串进行 SHA1 哈希
|
||||
5. 将哈希值与 `msg_signature` 进行比较
|
||||
6. 验证成功返回 `echostr`,失败返回 `"invalid"`
|
||||
|
||||
## 开发
|
||||
|
||||
代码检查:
|
||||
|
||||
```bash
|
||||
cargo check
|
||||
```
|
||||
|
||||
代码格式化:
|
||||
|
||||
```bash
|
||||
cargo fmt
|
||||
```
|
||||
|
||||
运行 linter:
|
||||
|
||||
```bash
|
||||
cargo clippy
|
||||
```
|
||||
|
||||
运行测试:
|
||||
|
||||
```bash
|
||||
cargo test
|
||||
```
|
||||
|
||||
## 注意事项
|
||||
|
||||
- 确保 Token 与企业微信后台配置一致
|
||||
- 服务器需要能够被企业微信服务器访问(如需外网访问,请配置端口转发或使用公网 IP)
|
||||
- 生产环境建议使用环境变量管理敏感配置
|
||||
|
||||
## 许可证
|
||||
|
||||
本项目仅供学习和参考使用。
|
||||
Reference in New Issue
Block a user