Skip to main content

reauth_via_remember_login

Function reauth_via_remember_login 

Source
pub async fn reauth_via_remember_login(
    http: &Client,
    account: &str,
    device_id: &str,
    attribution: UserAttribution,
) -> Result<AuthResult, FutuError>
Expand description

v1.4.94 G4: 用持久化 credentials 重做 remember-login, 拿到 fresh AuthResult (含新 client_sig / client_key).

§用途

G4 reactive client_sig refresh 路径: 当 reconnect tcp_login 持续失败暗示 client_sig 失效时, 调用方:

  1. 先调 AuthRefresher::refresh_qot_login() (refresh disk creds via refresh_credentials_on_disk)
  2. 再调本 fn 用更新后的 disk creds 重做 remember-login → fresh AuthResult
  3. 用 fresh AuthResult 替换 reconnect monitor 的本地 auth_result 变量
  4. 下一轮 tcp_login 用 fresh client_sig

§refresh_credentials_on_disk 的区别

refresh_credentials_on_disk 只更新 disk creds + LoginCache, 不返 AuthResult. 本 fn 复用其后端 logic 但额外返 fresh AuthResult 给调用方 用. 不重复 refresh disk (调用方已先调 refresh_qot_login).

§Failure modes

  • load_credentials 失败 (disk file 缺) → Err
  • rand_key_b64 decode 失败 (磁盘 file 损坏) → Err
  • remember_login 失败 (服务端拒新 tgtgt / 反刷限流 / network) → Err

任何失败 caller fallback 到旧行为 (continue with stale client_sig, 等下次 reconnect / G1 timer trigger / user 手动 admin reload).