fix: complete the 2FA flow (method and number picker, error recovery) - #607
fix: complete the 2FA flow (method and number picker, error recovery)#607BK0STAR wants to merge 1 commit into
Conversation
The 2FA bridge only handled SubmitCode; isideload also requires SendSms, SendToDevices, ResendCode and Abort. - Tauri backend: a typed async request_two_factor_response exchanging TwoFactorCallbackParams/Response over the 2fa-required/2fa-response events, with a timeout and a clean Abort path. - UI: trusted-method and trusted-number pickers, resend code, send to devices, last_error display, and associated styles. - EN/FR locales for the new strings. - Parsing tests for all TwoFactorCallbackResponse variants. Depends on nab138/isideload#9 (the isideload-side 2FA logic).
92094ca to
090c713
Compare
|
Hello,
Thank you for your time and contribution! |
|
Hello, and thanks for the feedback. To answer your question directly: I used AI to help me move faster, as many developers do today. It helped with exploring the codebase, planning, and drafting parts of the implementation. I still made the technical decisions, reviewed and adjusted the changes, ran the builds and tests, and tested the 2FA flow end to end. The result was also independently tested on Linux. I understand your concern about a “vibecoded” PR. This was not code generated and submitted blindly, and I’m happy to remove the tests and keep the PR focused on the 2FA backport. Thanks again for taking the time to look at it. |
Problem
Complements nab138/isideload#9 on the app side. iloader's 2FA bridge only handled
SubmitCode, while isideload also requiresSendSms,SendToDevices,ResendCodeandAbort. The frontend ignored the methods/numbers sent by the backend and only showed a code field (see #319).Fix
account.rs): a typed asyncrequest_two_factor_responseexchangingTwoFactorCallbackParams/TwoFactorCallbackResponseover the2fa-required/2fa-responseevents, with a timeout (300 s) and a cleanAbortpath.AppleID.tsx/.css): trusted-method and trusted-number pickers, resend code, send to devices,last_errordisplay, and associated styles.TwoFactorCallbackResponsevariants.Verification
bun run build(tsc + vite): OK.-22979throttling, the UI shows the code-entry field with the selected number kept; login completes via a trusted-device code. ✅This PR is a draft:
Cargo.tomlmust point to the fixed isideload commit once nab138/isideload#9 is merged. I will update the dependency (branch = "apple-codesign-quick"→ new commit) before marking it ready for review.Fixes #319