WeCom 认证运行时:鉴权客户端、鉴权 Transport 与客户端构建。
组合 wecomx-auth 的认证能力与 [wecomx-transport] 的请求
传输,为第三方应用提供开箱即用的 Library 入口:
- [
WecomClient]:门面客户端——鉴权 + 动态服务发现 + schema 驱动方法 调用一步到位(service()/method()/run(argv)); - [
WecomClientBuilder]:构建 [WecomClient] 或仅带鉴权的Transport(token provider、超时、默认头等); - [
WecomBackend]:统一出网后端——持有 token 即注入Authorization: Bearer <token>;挂 [RequireAuth] 的端点先过门禁; 命中 853004(token 失效)时经TokenProvider静默刷新并重放原请求一次(载荷经HttpRequestPayload工厂克隆,零成本重放); - [
endpoint_catalog]:网关扁平协议的端点目录覆写(配合wecomx::Client使用)。
Quick start
use std::sync::Arc;
use std::time::Duration;
use wecomx_runtime::{BotGatewayTokenProvider, EncryptedFileCredentialStore, WecomClientBuilder};
let store = Arc::new(EncryptedFileCredentialStore::new("~/.config/wecom"));
let provider = BotGatewayTokenProvider::new("bot-id", "secret", store);
let client = WecomClientBuilder::new()
.token_provider(Arc::new(provider))
.timeout(Duration::from_secs(10))
.build()
.await?;
// 程序化调用(服务/方法名由 discovery 下发)
let svc = client.service("hr").await?;
let result = svc.method(&["users", "list"])?.invoke(serde_json::json!({})).await?;