File tree Expand file tree Collapse file tree 1 file changed +8
-1
lines changed
FirebaseSwiftUI/FirebaseAuthSwiftUI/Sources/Services Expand file tree Collapse file tree 1 file changed +8
-1
lines changed Original file line number Diff line number Diff line change @@ -107,6 +107,7 @@ public final class AuthService {
107107 public let passwordPrompt : PasswordPromptCoordinator = . init( )
108108 public var currentMFARequired : MFARequired ?
109109 private var currentMFAResolver : MultiFactorResolver ?
110+ private var pendingMFACredential : AuthCredential ?
110111
111112 // MARK: - Provider APIs
112113
@@ -234,6 +235,8 @@ public final class AuthService {
234235 if error. code == AuthErrorCode . secondFactorRequired. rawValue {
235236 if let resolver = error
236237 . userInfo [ AuthErrorUserInfoMultiFactorResolverKey] as? MultiFactorResolver {
238+ // Preserve the original credential for use after MFA resolution
239+ pendingMFACredential = credentials
237240 return handleMFARequiredError ( resolver: resolver)
238241 }
239242 }
@@ -847,12 +850,16 @@ public extension AuthService {
847850
848851 do {
849852 let result = try await resolver. resolveSignIn ( with: assertion)
850- signedInCredential = result. credential
853+
854+ // After MFA resolution, result.credential is nil, so restore the original credential
855+ // that was used before MFA was triggered
856+ signedInCredential = result. credential ?? pendingMFACredential
851857 updateAuthenticationState ( )
852858
853859 // Clear MFA resolution state
854860 currentMFARequired = nil
855861 currentMFAResolver = nil
862+ pendingMFACredential = nil
856863
857864 } catch {
858865 throw AuthServiceError
You can’t perform that action at this time.
0 commit comments