Skip to main content

broker_auth

Function broker_auth 

Source
pub async fn broker_auth(
    http: &Client,
    client_type: u8,
    uid: u64,
    broker_id: u32,
    auth_code: &str,
    device_id: &str,
    web_tcp_identity: u32,
    web_tcp_addrs: &[(String, u16)],
    site_config: Option<&SharedSiteConfig>,
    auth_guaranteed_domains: &AuthGuaranteedDomainMap,
    auth_guaranteed_domains_configured: bool,
    route_cache: Option<&BrokerAuthRouteCache>,
) -> Result<BrokerAuth>
Expand description

向 broker auth 域名发 /broker_auth/client_auth POST 请求,换取 broker_client_sig + broker_client_key

对齐 C++ auth_impl.cpp:640-674RefreshBrokerClientSig)+ auth_impl.cpp:3378-3480ParseBrokerAuthResponse):

  • URL:POST https://{broker_auth_domain}/broker_auth/client_auth
  • Body:{"uid", "auth_code", "device_id", "broker_id"}
  • 响应 result 里的 broker_client_key 是 base64 编码 + AES-CBC-MD5 加密过的

⚠️ 解密不是用 rand_key!对齐 auth_impl.cpp:3434 —— 该处调用 DecryptByRandKey(&broker_client_key, nullptr),nullptr 触发 auth_cryptor.cpp:324-332 分支:用固定默认 key 解密(先试 AES-256 AUTH_DEFAULT_KEY_32,失败兜底 AES-128 AUTH_DEFAULT_KEY),不是 Platform client_key 用的 rand_key。