Crate wechat_backend_auth

Crate wechat_backend_auth 

Source
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(())
}

§适用场景

  1. 前后端分离应用: 前端获取code,后端API验证
  2. RESTful API: 提供登录接口给前端调用
  3. 自定义会话管理: 使用JWT、Session Cookie等自己的会话方案
  4. 灵活的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§

types

Structs§

BackendAuthClient
后端授权客户端 - 完全无状态设计
BackendConfig
后端授权配置
HttpConfig
HTTP传输层配置

Enums§

TransportError
网络传输错误
WeChatError
微信授权错误类型