Skip to content

Commit 727f2f8

Browse files
harsh62thisisabhash
authored andcommitted
fix(auth): add missing state transitions during auto sign in
1 parent ff88fd8 commit 727f2f8

File tree

1 file changed

+42
-1
lines changed

1 file changed

+42
-1
lines changed

AmplifyPlugins/Auth/Sources/AWSCognitoAuthPlugin/StateMachine/Resolvers/SignIn/SignInState+Resolver.swift

Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -684,7 +684,48 @@ extension SignInState {
684684
)
685685
#endif
686686

687-
case .autoSigningIn:
687+
case .autoSigningIn(let signInEventData):
688+
689+
if let signInEvent = event as? SignInEvent,
690+
case .receivedChallenge(let challenge) = signInEvent.eventType {
691+
let action = InitializeResolveChallenge(
692+
challenge: challenge,
693+
signInMethod: signInEventData.signInMethod
694+
)
695+
let subState = SignInChallengeState.notStarted
696+
return .init(
697+
newState:
698+
.resolvingChallenge(
699+
subState,
700+
challenge.challenge.authChallengeType,
701+
signInEventData.signInMethod
702+
),
703+
actions: [action]
704+
)
705+
}
706+
707+
if let signInEvent = event as? SignInEvent,
708+
case .initiateDeviceSRP(let username, let challengeResponse) = signInEvent.eventType {
709+
let action = StartDeviceSRPFlow(
710+
username: username,
711+
authResponse: challengeResponse
712+
)
713+
return .init(
714+
newState: .resolvingDeviceSrpa(.notStarted),
715+
actions: [action]
716+
)
717+
}
718+
719+
if let signInEvent = event as? SignInEvent,
720+
case .initiateTOTPSetup(_, let challengeResponse) = signInEvent.eventType {
721+
let action = InitializeTOTPSetup(
722+
authResponse: challengeResponse)
723+
return .init(
724+
newState: .resolvingTOTPSetup(.notStarted, signInEventData),
725+
actions: [action]
726+
)
727+
}
728+
688729
if case .finalizeSignIn(let signedInData) = event.isSignInEvent {
689730
return .init(
690731
newState: .signedIn(signedInData),

0 commit comments

Comments
 (0)