Expand description
§wechat-backend-auth
一个专为后端开发者设计的完全无状态的微信授权客户端,用于处理“前端传code,后端验证“的授权场景。
§特点
- ✅ 完全无状态: 不缓存token、不管理refresh_token、不管理会话
- ✅ 极简接口: 仅封装微信API调用,没有复杂的Manager层
- ✅ 后端全权管理: token存储、会话管理完全由业务代码决定
- ✅ 通用性: 支持公众号、开放平台、移动应用的code验证
§快速开始
use wechat_backend_auth::*;
#[tokio::main]
async fn main() -> Result<(), WeChatError> {
// 初始化客户端(注意:无需storage参数)
let client = BackendAuthClient::new(
BackendConfig::builder()
.app_id(AppId::new("wx1234567890abcdef"))
.app_secret(AppSecret::new("your_app_secret_here"))
.build()
)?;
// 前端传来的code
let code = "front_end_code_123";
// 换取token
let token_resp = client
.exchange_code(AuthorizationCode::new(code))
.await?;
// 获取用户信息
let user_info = client
.get_user_info(&token_resp.access_token, &token_resp.openid)
.await?;
println!("用户登录: {} ({})", user_info.nickname, user_info.openid);
Ok(())
}§适用场景
- 前后端分离应用: 前端获取code,后端API验证
- RESTful API: 提供登录接口给前端调用
- 自定义会话管理: 使用JWT、Session Cookie等自己的会话方案
- 灵活的token管理: 自行决定token存储到数据库、Redis或不存储
Re-exports§
pub use types::AccessToken;pub use types::AppId;pub use types::AppSecret;pub use types::AuthorizationCode;pub use types::OpenId;pub use types::RefreshToken;pub use types::TokenResponse;pub use types::UnionId;pub use types::UserInfo;
Modules§
Structs§
- Backend
Auth Client - 后端授权客户端 - 完全无状态设计
- Backend
Config - 后端授权配置
- Http
Config - HTTP传输层配置
Enums§
- Transport
Error - 网络传输错误
- WeChat
Error - 微信授权错误类型