wechat_backend_auth/lib.rs
1//! # wechat-backend-auth
2//!
3//! 一个专为后端开发者设计的**完全无状态**的微信授权客户端,用于处理"前端传code,后端验证"的授权场景。
4//!
5//! ## 特点
6//!
7//! - ✅ **完全无状态**: 不缓存token、不管理refresh_token、不管理会话
8//! - ✅ **极简接口**: 仅封装微信API调用,没有复杂的Manager层
9//! - ✅ **后端全权管理**: token存储、会话管理完全由业务代码决定
10//! - ✅ **通用性**: 支持公众号、开放平台、移动应用的code验证
11//!
12//! ## 快速开始
13//!
14//! ```no_run
15//! use wechat_backend_auth::*;
16//!
17//! #[tokio::main]
18//! async fn main() -> Result<(), WeChatError> {
19//! // 初始化客户端(注意:无需storage参数)
20//! let client = BackendAuthClient::new(
21//! BackendConfig::builder()
22//! .app_id(AppId::new("wx1234567890abcdef"))
23//! .app_secret(AppSecret::new("your_app_secret_here"))
24//! .build()
25//! )?;
26//!
27//! // 前端传来的code
28//! let code = "front_end_code_123";
29//!
30//! // 换取token
31//! let token_resp = client
32//! .exchange_code(AuthorizationCode::new(code))
33//! .await?;
34//!
35//! // 获取用户信息
36//! let user_info = client
37//! .get_user_info(&token_resp.access_token, &token_resp.openid)
38//! .await?;
39//!
40//! println!("用户登录: {} ({})", user_info.nickname, user_info.openid);
41//!
42//! Ok(())
43//! }
44//! ```
45//!
46//! ## 适用场景
47//!
48//! 1. **前后端分离应用**: 前端获取code,后端API验证
49//! 2. **RESTful API**: 提供登录接口给前端调用
50//! 3. **自定义会话管理**: 使用JWT、Session Cookie等自己的会话方案
51//! 4. **灵活的token管理**: 自行决定token存储到数据库、Redis或不存储
52//!
53
54mod client;
55mod config;
56mod error;
57mod transport;
58pub mod types;
59
60// 重导出核心类型
61pub use client::BackendAuthClient;
62pub use config::{BackendConfig, HttpConfig};
63pub use error::{TransportError, WeChatError};
64pub use types::{
65 AccessToken, AppId, AppSecret, AuthorizationCode, OpenId, RefreshToken, TokenResponse, UnionId,
66 UserInfo,
67};