@@ -104,22 +104,32 @@ Future<void> resendSignUpCode(String username) async {
104
104
}
105
105
// #enddocregion resend-signup-code
106
106
107
- // #docregion handle-signin, handle-confirm-signin-sms, handle-confirm-signin-new-password, handle-confirm-signin-custom-challenge, handle-confirm-signin-reset-password, handle-confirm-signin-confirm-signup, handle-confirm-signin-done, handle-confirm-signin-mfa-selection, handle-confirm-signin-totp-setup, handle-confirm-signin-totp-code, handle-confirm-signin-email
107
+ // #docregion handle-signin, handle-confirm-signin-sms, handle-confirm-signin-new-password, handle-confirm-signin-custom-challenge, handle-confirm-signin-reset-password, handle-confirm-signin-confirm-signup, handle-confirm-signin-done, handle-confirm-signin-mfa-selection, handle-confirm-signin-totp-setup, handle-confirm-signin-totp-code, handle-confirm-signin-email-code, handle-confirm-signin-mfa-setup-selection, handle-confirm-signin-email-setup
108
108
Future <void > _handleSignInResult (SignInResult result) async {
109
109
switch (result.nextStep.signInStep) {
110
- // #enddocregion handle-signin, handle-confirm-signin-sms, handle-confirm-signin-new-password, handle-confirm-signin-custom-challenge, handle-confirm-signin-reset-password, handle-confirm-signin-confirm-signup, handle-confirm-signin-done, handle-confirm-signin-mfa-selection, handle-confirm-signin-totp-setup, handle-confirm-signin-totp-code
110
+ // #enddocregion handle-signin, handle-confirm-signin-sms, handle-confirm-signin-new-password, handle-confirm-signin-custom-challenge, handle-confirm-signin-reset-password, handle-confirm-signin-confirm-signup, handle-confirm-signin-done, handle-confirm-signin-mfa-selection, handle-confirm-signin-email-code, handle-confirm-signin- totp-setup, handle-confirm-signin-totp-code, handle-confirm-signin-mfa-setup-selection, handle-confirm-signin-email-setup
111
111
// #docregion handle-confirm-signin-mfa-selection
112
112
case AuthSignInStep .continueSignInWithMfaSelection:
113
113
final allowedMfaTypes = result.nextStep.allowedMfaTypes! ;
114
114
final selection = await _promptUserPreference (allowedMfaTypes);
115
115
return _handleMfaSelection (selection);
116
116
// #enddocregion handle-confirm-signin-mfa-selection
117
+ // #docregion handle-confirm-signin-mfa-setup-selection
118
+ case AuthSignInStep .continueSignInWithMfaSetupSelection:
119
+ final allowedMfaTypes = result.nextStep.allowedMfaTypes! ;
120
+ final selection = await _promptUserPreference (allowedMfaTypes);
121
+ return _handleMfaSetupSelection (selection);
122
+ // #enddocregion handle-confirm-signin-mfa-setup-selection
117
123
// #docregion handle-confirm-signin-totp-setup
118
124
case AuthSignInStep .continueSignInWithTotpSetup:
119
125
final totpSetupDetails = result.nextStep.totpSetupDetails! ;
120
126
final setupUri = totpSetupDetails.getSetupUri (appName: 'MyApp' );
121
127
safePrint ('Open URI to complete setup: $setupUri ' );
122
128
// #enddocregion handle-confirm-signin-totp-setup
129
+ // #docregion handle-confirm-signin-email-setup
130
+ case AuthSignInStep .continueSignInWithEmailMfaSetup:
131
+ safePrint ('A confirmation code has been sent to your email' );
132
+ // #enddocregion handle-confirm-signin-email-setup
123
133
// #docregion handle-confirm-signin-totp-code
124
134
case AuthSignInStep .confirmSignInWithTotpMfaCode:
125
135
safePrint ('Enter a one-time code from your registered Authenticator app' );
@@ -163,10 +173,10 @@ Future<void> _handleSignInResult(SignInResult result) async {
163
173
case AuthSignInStep .done:
164
174
safePrint ('Sign in is complete' );
165
175
// #enddocregion handle-confirm-signin-done
166
- // #docregion handle-signin, handle-confirm-signin-sms, handle-confirm-signin-new-password, handle-confirm-signin-custom-challenge, handle-confirm-signin-reset-password, handle-confirm-signin-confirm-signup, handle-confirm-signin-done, handle-confirm-signin-mfa-selection, handle-confirm-signin-totp-setup, handle-confirm-signin-totp-code
176
+ // #docregion handle-signin, handle-confirm-signin-sms, handle-confirm-signin-new-password, handle-confirm-signin-custom-challenge, handle-confirm-signin-reset-password, handle-confirm-signin-confirm-signup, handle-confirm-signin-done, handle-confirm-signin-mfa-selection, handle-confirm-signin-totp-setup, handle-confirm-signin-totp-code, handle-confirm-signin-email-code, handle-confirm-signin-mfa-setup-selection, handle-confirm-signin-email-setup
167
177
}
168
178
}
169
- // #enddocregion handle-signin, handle-confirm-signin-sms, handle-confirm-signin-new-password, handle-confirm-signin-custom-challenge, handle-confirm-signin-reset-password, handle-confirm-signin-confirm-signup, handle-confirm-signin-done, handle-confirm-signin-mfa-selection, handle-confirm-signin-totp-setup, handle-confirm-signin-totp-code
179
+ // #enddocregion handle-signin, handle-confirm-signin-sms, handle-confirm-signin-new-password, handle-confirm-signin-custom-challenge, handle-confirm-signin-reset-password, handle-confirm-signin-confirm-signup, handle-confirm-signin-done, handle-confirm-signin-mfa-selection, handle-confirm-signin-totp-setup, handle-confirm-signin-totp-code, handle-confirm-signin-email-code, handle-confirm-signin-mfa-setup-selection, handle-confirm-signin-email-setup
170
180
171
181
// #docregion signin
172
182
Future <void > signInUser (String username, String password) async {
@@ -241,6 +251,19 @@ Future<void> _handleMfaSelection(MfaType selection) async {
241
251
}
242
252
// #enddocregion handle-mfa-selection
243
253
254
+ // #docregion handle-mfa-setup-selection
255
+ Future <void > _handleMfaSetupSelection (MfaType selection) async {
256
+ try {
257
+ final result = await Amplify .Auth .confirmSignIn (
258
+ confirmationValue: selection.confirmationValue,
259
+ );
260
+ return _handleSignInResult (result);
261
+ } on AuthException catch (e) {
262
+ safePrint ('Error resending code: ${e .message }' );
263
+ }
264
+ }
265
+ // #enddocregion handle-mfa-setup-selection
266
+
244
267
// #docregion signout
245
268
Future <void > signOutCurrentUser () async {
246
269
final result = await Amplify .Auth .signOut ();
0 commit comments