Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

fix(auth): export totp modular types / enable ios sms mfa (w/emulator patch) / add sms mfa to demo #8685

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
mikehardy merged 5 commits into main from @mikehardy/auth-mfa-ios-e2e-enable
Sep 3, 2025

Conversation

Copy link
Collaborator

@mikehardy mikehardy commented Sep 1, 2025
edited
Loading

Description

It has long irritated me that we could not test SMS MFA on iOS, and I was never certain it worked.

Now we have the ability with local/manual tests to auth against the cloud which allows for MFA testing.

Reviewer note: look at each commit separately, they each have one single idea for easy review

I extended the local TOTP test app to be a general MFA test app with TOTP and/or SMS, and verified that it does work - iOS SMS MFA works against the cloud.

That proved our ios sms mfa issue was emulator-specific, and I was able to quickly localize and patch the error so we can re-enable the e2e test that automatically verifies phone MFA

While doing this I noticed there weren't TOTP exports for modular (and the types weren't unit tested...), and I also thought adding a pointer to the MFA example could help people in docs.

Related issues

Release Summary

fix release, based on the types fix.

Checklist

  • I read the Contributor Guide and followed the process outlined there for submitting PRs.
    • Yes
  • My change supports the following platforms;
    • Android
    • iOS
    • Other (macOS, web)
  • My change includes tests;
    • e2e tests added or updated in packages/\*\*/e2e
    • jest tests added or updated in packages/\*\*/__tests__
  • I have updated TypeScript types that are affected by my change.
  • This is a breaking change;
    • Yes
    • No

Test Plan

Everything here is backed by tests, and the goal was actually to improve testing of iOS SMS auth to verify it even worked


Think react-native-firebase is great? Please consider supporting the project with any of the below:

Copy link

vercel bot commented Sep 1, 2025
edited
Loading

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Preview Comments Updated (UTC)
react-native-firebase Ready Ready Preview Comment Sep 2, 2025 8:43pm

@mikehardy mikehardy changed the title (削除) test(auth): enable ios sms mfa (w/emulator patch), add sms mfa to demo (削除ここまで) (追記) fix(auth): export totp modular types / enable ios sms mfa (w/emulator patch) / add sms mfa to demo (追記ここまで) Sep 1, 2025
Copy link
Collaborator Author

Honestly not sure why TotpSecret class is not defined in the types after my change, that's the jest failure.

Would love a quick set of 👀 if someone has an idea there. I tried changing it from class to interface but still fails 🤔


 くろまる Auth › modular › `TotpSecret` class is properly exposed to end user
 expect(received).toBeDefined()
 Received: undefined
 512 |
 513 | it('`TotpSecret` class is properly exposed to end user', function () {
 > 514 | expect(TotpSecret).toBeDefined();
 | ^
 515 | });
 516 |
 517 | it('`TotpMultiFactorGenerator` class is properly exposed to end user', function () {
 at Object.<anonymous> (packages/auth/__tests__/auth.test.ts:514:26)
russellwheatley reacted with thumbs up emoji

mikehardy and others added 4 commits September 2, 2025 15:37
----
Co-Authored-By: Russell Wheatley <russellwheatley85@gmail.com>
on iOS they attempt to verify a masked number for 2FA not an unmasked one
- works fine against cloud auth, so it is an emulator-specific issue
- in emulator you can fix it with a patch that looks for unobfuscated *or* obfuscated verification
See firebase/firebase-tools#9062 
this helped verify an MFA+SMS verification issue on iOS + emulator
MFA works now with email+password primary and either SMS or TOTP or both now
@mikehardy mikehardy force-pushed the @mikehardy/auth-mfa-ios-e2e-enable branch from 0c8f2ef to 1d168e6 Compare September 2, 2025 20:39
@mikehardy mikehardy merged commit 87a6884 into main Sep 3, 2025
21 checks passed
@mikehardy mikehardy deleted the @mikehardy/auth-mfa-ios-e2e-enable branch September 3, 2025 03:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@russellwheatley russellwheatley russellwheatley approved these changes

@MichaelVerdon MichaelVerdon Awaiting requested review from MichaelVerdon

Assignees

No one assigned

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

AltStyle によって変換されたページ (->オリジナル) /