Skip to content

fix(mobile): make account sign-in recovery reliable - #3253

Merged
wgqqqqq merged 4 commits into
GCWing:mainfrom
wgqqqqq:wgq/mobile-login-reliability
Sep 29, 2026
Merged

wgqqqqq merged 4 commits into
GCWing:mainfrom
wgqqqqq:wgq/mobile-login-reliability

Conversation

@wgqqqqq

@wgqqqqq wgqqqqq commented Sep 29, 2026

Copy link
Copy Markdown
Collaborator

What changed

This PR replaces #3248 and carries the complete local fix set for mobile account sign-in reliability.

  • Keep a completed relay sign-in poll replayable for the same (transaction_id, transaction_secret) pair. Pending responses are not cached, and a mismatched secret cannot overwrite the valid authorized response.
  • Recover a stale HarmonyOS HUKS alias on a fresh install before retrying device identity creation.
  • Recover a stale Android Keystore alias on a fresh install when the secure namespace has no existing records.
  • Preserve existing encrypted session data and secure records by rethrowing failures once data already exists.
  • Add a regression test covering replay after a mismatched-secret poll.

The relay change follows the useful direction in #3248, but scopes the cache by both transaction id and secret so an invalid poll cannot consume or replace another client’s authorized result.

Validation

  • cargo test -p openbitfun-relay-service
  • node scripts/check-core-boundaries.mjs
  • Android :app:assembleDebug
  • HarmonyOS HAP build and connected-device login smoke test; the client reached relay start/poll successfully after the secure-store recovery.

@wgqqqqq
wgqqqqq merged commit efef2f4 into GCWing:main Sep 29, 2026
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant