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-674(RefreshBrokerClientSig)+
auth_impl.cpp:3378-3480(ParseBrokerAuthResponse):
- 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。