-
Notifications
You must be signed in to change notification settings - Fork 2.3k
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
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
The latest updates on your projects. Learn more about Vercel for GitHub.
|
@mikehardy
mikehardy
requested review from
MichaelVerdon and
russellwheatley
September 1, 2025 20:12
9 tasks
@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
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
russellwheatley
approved these changes
Sep 2, 2025
russellwheatley
russellwheatley
approved these changes
Sep 2, 2025
---- Co-Authored-By: Russell Wheatley <russellwheatley85@gmail.com>
could be useful to implementors
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
September 2, 2025 20:39
0c8f2ef
to
1d168e6
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.
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
Android
iOS
Other
(macOS, web)e2e
tests added or updated inpackages/\*\*/e2e
jest
tests added or updated inpackages/\*\*/__tests__
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:React Native Firebase
andInvertase
on Twitter