-
Notifications
You must be signed in to change notification settings - Fork 260
chore(auth): add email otp mfa enums and types #5237
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
Conversation
packages/amplify_core/lib/src/types/auth/sign_in/auth_sign_in_step.dart
Outdated
Show resolved
Hide resolved
093ae40
to
131979e
Compare
packages/auth/amplify_auth_cognito_dart/lib/src/sdk/sdk_bridge.dart
Outdated
Show resolved
Hide resolved
packages/auth/amplify_auth_cognito_dart/lib/src/sdk/sdk_bridge.dart
Outdated
Show resolved
Hide resolved
packages/auth/amplify_auth_cognito_dart/lib/src/sdk/sdk_exception.dart
Outdated
Show resolved
Hide resolved
packages/auth/amplify_auth_cognito_dart/lib/src/sdk/sdk_bridge.dart
Outdated
Show resolved
Hide resolved
new changes
c049f18
to
a0a8b6e
Compare
This reverts commit 04fbd0c.
…step.dart Co-authored-by: Elijah Quartey <Equartey@users.noreply.github.com>
* chore(api): update endpoint config to use ApiOutputs instead of AWSApiConfig type (#5193) * feat: bump json_annotation dependency to v4.9 * chore: update actions workflow to run aft link * chore(secure_storage): Plugin Endorsement (#5208) * chore(infra): bump deps (#5221) * chore(test): use Amplify Gen 2 config in unit tests (#5205) * chore: add testUrlScheme back to test (#5223) * chore: add gen2 auth e2e infra (#5179) * chore(infra): Api migrate to Gen 2 E2E * fix: git update-index --chmod=+x * fix: code review * chore: port auth backend * chore: port lambda triggers for create user and custom email sender * chore: move utils to infra-common * chore: compile infra common to js * chore: update utils for js restructure, add missing deps * chore: fix confirmation code infra * chore: update tests to run for gen2 stacks * chore: remove alias from custom sender lambda * chore: fix deliveryMedium in reset password test * chore: add phone sign in infra * chore: rename email-sign-in * chore: add license header * chore: fix formatting in GH workflow * chore: update package-lock * chore: remove deleted file * chore: fix formatting * chore: update package lock * chore: remove dup function * chore: remove changes from merge conflicts * chore: fix build script * chore: fetch auth amplify_outputs * chore: remove libgit2dart * chore: add custom sms sender * chore: add stack name to infra resources * chore: pull gen2 backend for authenticator * chore: update package-lock * chore: move dependencies to dev_dependencies * chore: update fetch auth session tests * chore: separate reset pw and confirmation delivery medium * chore: fix hanging test * chore: rename test group * chore: update comments, remove unused type * chore: update package lock --------- Co-authored-by: Elijah Quartey <quaelija@amazon.com> * chore(auth): sign-up state machine to use AmplifyOutputs instead of AmplifyConfig types (#5230) * chore(auth): sign-in state machine to use AmplifyOutputs instead of AmplifyConfig types (#5231) * chore(auth): fetch auth session state machine to use AmplifyOutputs instead of AmplifyConfig types (#5234) * chore(auth): sign-out state machine to use AmplifyOutputs instead of AmplifConfig types (#5235) * chore(actions): android emulator to start with clear cache and data (#5245) * chore(actions): e2e android tests to run with API 34 (#5247) * chore(infra): bump deps (#5246) Updated @aws-sdk/client-amplify @aws-sdk/client-cognito-identity-provider @aws-crypto/client-node @aws-sdk/client-s3 * chore(auth): cognito keys to not use AmplifyConfig types (#5243) * chore(auth): hosted ui state machine to not use AmplifyConfig types (#5254) * fix(datastore): Clear subscriptions on Stop (#5253) * Chore/goldens flutter lint (#5271) * temp: generate goldens png * test: fixing context mounted issue * chore: add todo comment about deprecated member use --------- Co-authored-by: Andrew Hahn <dev.andrewhahn@gmail.com> * chore(infra): analytics integ test gen 2 backend (#5104) * chore(auth): device metadata repository to use AuthOutputs instead of CognitoUserPoolConfig (#5289) * feat(Auth): Add fetchCurrentDevice API (#5251) feat(Auth): Add fetchCurrentDevice API (#5251) * chore(dependencies): bump package_info_plus (#5274) chore: bump package_info_plus * chore: migrate sms only MFA infra to Gen 2 (#5291) * chore: add new auth backend * chore: add auth extension * chore: add license headers * chore: add mfa to env * chore: add trigger to enable MFA * chore: add infra for sms required * chore: refactor tests for gen 2 backends * chore: add backends to deploy script * chore: package-lock for mfa-required-sms * chore: remove bundling of @aws-crypto/client-node * chore: fix formatting * fix(datastore): Restart Sync Engine when network on/off (#5218) * chore: update authenticator tests (#5296) * chore(auth): hosted ui platforms to use AmplifyOutputs types instead of AmplifyConfig (#5273) * chore(auth): asf context data provider to use AuthOutputs instead of CognitoUserPoolConfig (#5290) * chore(auth): fix fetch current device test (#5297) * fix: push notification flush events (#5215) fix: push notification flush events (#5215) * chore(dependencies): bump build_runner (#5300) * chore(dependencies): bump build_runner * chore(bump): checks package (#5305) * chore(bump): checks package * chore(version): Bump version chore(): Fixed Version Bumps chore: fixed change log chore: fixed change log chore: fixed change log chore: fixed change log * chore: manually bump amplify_db_common version * chore(infra): Extend API key expiration (#5336) * chore(dev): use ubuntu image from amazon ECR public gallery instead of docket hub (#5341) * fix(api): web socket error handling (#5359) * chore: update issue template (#5369) * fix(datastore): FlutterSerializedModel.extractJsonValue returns `.some(nil)` instead of `nil` (#5370) * chore: add GH actions for issue open, close, comment, label events (#5310) * fix(secure_storage): add missing macOS plugin (#5372) fix(secure_storage): add missing macos plugin it's fixing #5361 * chore: update plugin registrant for example apps that depend on secure storage (#5379) * chore(version): Bump version - fix(secure_storage): add missing macOS plugin ([#5372](#5372)) Updated-Components: Secure Storage * chore(deps): Amplify Android 2.21.1 (#5376) * update amplify android to latest * update amplify android to latest in notifications * feat(aws_common): Generated new AWSService constructors (#5378) * chore(infra): regen lock file (#5374) * chore(auth): credential store state machine to use AuthOutputs instead of AmplifyConfig types (#5298) * chore(api): Remove Gen 1 API backend (#5393) * chore(datastore): Add multi auth integration tests (#5204) * feat: move App Sync subscription headers to protocol (#5301) * chore: move subscription headers to protocol * fix: remove `=` from encoded headers * chore: add comment * chore: `aft version-bump` test suite (#5424) * chore: add `--skip-build-version` option * chore: use `base-ref`/`head-ref` over env vars * chore: add new version bump test suite * chore: remove old version bump tests * chore: only include first change log entry * fix: sort change types before writing to the change log * chore: remove non essential info from diffs * chore: generate repo snapshot * chore: generate diff snapshots * chore: clean up tests and test output * chore: update `aft generate workflows`, regenerate dependabot.yaml (#5441) * chore: skip repo snapshot in dependabot generation * chore: regenerate dependabot.yaml * chore: fix `aft version-bump` (#5436) * fix: properly handle component propagation * chore: add test for multi package update with breaking common package --------- Co-authored-by: NikaHsn <nika.hasani@gmail.com> Co-authored-by: Jordan Nelson <Jordanryannelson@gmail.com> Co-authored-by: Elijah Quartey <Equartey@users.noreply.github.com> Co-authored-by: Elijah Quartey <quaelija@amazon.com> Co-authored-by: Tyler-Larkin <tyllark@amazon.com> Co-authored-by: Andrew Hahn <dev.andrewhahn@gmail.com> Co-authored-by: Andrew Hahn <58017052+hahnandrew@users.noreply.github.com> Co-authored-by: Burak Karahan <burak.karahan@mail.ru> Co-authored-by: Jamil Saadeh <jssaadeh@outlook.com>
* chore(api): update endpoint config to use ApiOutputs instead of AWSApiConfig type (#5193) * feat: bump json_annotation dependency to v4.9 * chore: update actions workflow to run aft link * chore(secure_storage): Plugin Endorsement (#5208) * chore(infra): bump deps (#5221) * chore(test): use Amplify Gen 2 config in unit tests (#5205) * chore: add testUrlScheme back to test (#5223) * chore: add gen2 auth e2e infra (#5179) * chore(infra): Api migrate to Gen 2 E2E * fix: git update-index --chmod=+x * fix: code review * chore: port auth backend * chore: port lambda triggers for create user and custom email sender * chore: move utils to infra-common * chore: compile infra common to js * chore: update utils for js restructure, add missing deps * chore: fix confirmation code infra * chore: update tests to run for gen2 stacks * chore: remove alias from custom sender lambda * chore: fix deliveryMedium in reset password test * chore: add phone sign in infra * chore: rename email-sign-in * chore: add license header * chore: fix formatting in GH workflow * chore: update package-lock * chore: remove deleted file * chore: fix formatting * chore: update package lock * chore: remove dup function * chore: remove changes from merge conflicts * chore: fix build script * chore: fetch auth amplify_outputs * chore: remove libgit2dart * chore: add custom sms sender * chore: add stack name to infra resources * chore: pull gen2 backend for authenticator * chore: update package-lock * chore: move dependencies to dev_dependencies * chore: update fetch auth session tests * chore: separate reset pw and confirmation delivery medium * chore: fix hanging test * chore: rename test group * chore: update comments, remove unused type * chore: update package lock --------- Co-authored-by: Elijah Quartey <quaelija@amazon.com> * chore(auth): sign-up state machine to use AmplifyOutputs instead of AmplifyConfig types (#5230) * chore(auth): sign-in state machine to use AmplifyOutputs instead of AmplifyConfig types (#5231) * chore(auth): fetch auth session state machine to use AmplifyOutputs instead of AmplifyConfig types (#5234) * chore(auth): sign-out state machine to use AmplifyOutputs instead of AmplifConfig types (#5235) * chore(actions): android emulator to start with clear cache and data (#5245) * chore(actions): e2e android tests to run with API 34 (#5247) * chore(infra): bump deps (#5246) Updated @aws-sdk/client-amplify @aws-sdk/client-cognito-identity-provider @aws-crypto/client-node @aws-sdk/client-s3 * chore(auth): cognito keys to not use AmplifyConfig types (#5243) * chore(auth): hosted ui state machine to not use AmplifyConfig types (#5254) * fix(datastore): Clear subscriptions on Stop (#5253) * Chore/goldens flutter lint (#5271) * temp: generate goldens png * test: fixing context mounted issue * chore: add todo comment about deprecated member use --------- Co-authored-by: Andrew Hahn <dev.andrewhahn@gmail.com> * chore(infra): analytics integ test gen 2 backend (#5104) * chore(auth): device metadata repository to use AuthOutputs instead of CognitoUserPoolConfig (#5289) * feat(Auth): Add fetchCurrentDevice API (#5251) feat(Auth): Add fetchCurrentDevice API (#5251) * chore(dependencies): bump package_info_plus (#5274) chore: bump package_info_plus * chore: migrate sms only MFA infra to Gen 2 (#5291) * chore: add new auth backend * chore: add auth extension * chore: add license headers * chore: add mfa to env * chore: add trigger to enable MFA * chore: add infra for sms required * chore: refactor tests for gen 2 backends * chore: add backends to deploy script * chore: package-lock for mfa-required-sms * chore: remove bundling of @aws-crypto/client-node * chore: fix formatting * fix(datastore): Restart Sync Engine when network on/off (#5218) * chore: update authenticator tests (#5296) * chore(auth): hosted ui platforms to use AmplifyOutputs types instead of AmplifyConfig (#5273) * chore(auth): asf context data provider to use AuthOutputs instead of CognitoUserPoolConfig (#5290) * chore(auth): fix fetch current device test (#5297) * fix: push notification flush events (#5215) fix: push notification flush events (#5215) * chore(dependencies): bump build_runner (#5300) * chore(dependencies): bump build_runner * chore(bump): checks package (#5305) * chore(bump): checks package * chore(version): Bump version chore(): Fixed Version Bumps chore: fixed change log chore: fixed change log chore: fixed change log chore: fixed change log * chore: manually bump amplify_db_common version * chore(infra): Extend API key expiration (#5336) * chore(dev): use ubuntu image from amazon ECR public gallery instead of docket hub (#5341) * fix(api): web socket error handling (#5359) * chore: update issue template (#5369) * fix(datastore): FlutterSerializedModel.extractJsonValue returns `.some(nil)` instead of `nil` (#5370) * chore: add GH actions for issue open, close, comment, label events (#5310) * fix(secure_storage): add missing macOS plugin (#5372) fix(secure_storage): add missing macos plugin it's fixing #5361 * chore: update plugin registrant for example apps that depend on secure storage (#5379) * chore(version): Bump version ### Fixes - fix(secure_storage): add missing macOS plugin ([#5372](#5372)) Updated-Components: Secure Storage * chore(deps): Amplify Android 2.21.1 (#5376) * update amplify android to latest * update amplify android to latest in notifications * feat(aws_common): Generated new AWSService constructors (#5378) * chore(infra): regen lock file (#5374) * chore(auth): credential store state machine to use AuthOutputs instead of AmplifyConfig types (#5298) * chore(api): Remove Gen 1 API backend (#5393) * chore(datastore): Add multi auth integration tests (#5204) * feat: move App Sync subscription headers to protocol (#5301) * chore: move subscription headers to protocol * fix: remove `=` from encoded headers * chore: add comment * chore: `aft version-bump` test suite (#5424) * chore: add `--skip-build-version` option * chore: use `base-ref`/`head-ref` over env vars * chore: add new version bump test suite * chore: remove old version bump tests * chore: only include first change log entry * fix: sort change types before writing to the change log * chore: remove non essential info from diffs * chore: generate repo snapshot * chore: generate diff snapshots * chore: clean up tests and test output * chore: update `aft generate workflows`, regenerate dependabot.yaml (#5441) * chore: skip repo snapshot in dependabot generation * chore: regenerate dependabot.yaml * chore: fix `aft version-bump` (#5436) * fix: properly handle component propagation * chore: add test for multi package update with breaking common package * chore(auth): re-generate auth cognito sdk for email mfa --------- Co-authored-by: Jordan Nelson <Jordanryannelson@gmail.com> Co-authored-by: Elijah Quartey <Equartey@users.noreply.github.com> Co-authored-by: Elijah Quartey <quaelija@amazon.com> Co-authored-by: Tyler-Larkin <tyllark@amazon.com> Co-authored-by: Andrew Hahn <dev.andrewhahn@gmail.com> Co-authored-by: Kha Truong <64438356+khatruong2009@users.noreply.github.com> Co-authored-by: Andrew Hahn <58017052+hahnandrew@users.noreply.github.com> Co-authored-by: Burak Karahan <burak.karahan@mail.ru> Co-authored-by: Jamil Saadeh <jssaadeh@outlook.com> Co-authored-by: Nika Hassani <nikaws@amazon.com>
packages/auth/amplify_auth_cognito_dart/lib/src/state/machines/sign_in_state_machine.dart
Outdated
Show resolved
Hide resolved
packages/auth/amplify_auth_cognito_dart/lib/src/state/machines/sign_in_state_machine.dart
Outdated
Show resolved
Hide resolved
packages/authenticator/amplify_authenticator/lib/src/blocs/auth/auth_bloc.dart
Show resolved
Hide resolved
…sForSetup in the first if statement
@@ -34,7 +34,7 @@ void main() { | |||
signInRes.nextStep.signInStep, | |||
because: | |||
"TOTP MFA is automatically enabled when it's the only option", | |||
).equals(AuthSignInStep.continueSignInWithTotpSetup); | |||
).equals(AuthSignInStep.continueSignInWithMfaSetupSelection); | |||
|
|||
final sharedSecret = signInRes.nextStep.totpSetupDetails!.sharedSecret; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
same as above
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
answered here
@@ -35,7 +35,7 @@ void main() { | |||
signInRes.nextStep.signInStep, | |||
because: 'MFA is required, and TOTP is chosen when ' | |||
'no phone number is registered', | |||
).equals(AuthSignInStep.continueSignInWithTotpSetup); | |||
).equals(AuthSignInStep.continueSignInWithMfaSetupSelection); | |||
|
|||
final sharedSecret = signInRes.nextStep.totpSetupDetails!.sharedSecret; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Q: is signInRes.nextStep.totpSetupDetails
not null for signInRes.nextStep.signInStep
== continueSignInWithMfaSetupSelection
?
based on reading the code I think signInRes.nextStep.totpSetupDetails
is present when signInRes.nextStep.signInStep
is continueSignInWithTotpSetup
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's correct, signInRes.nextStep.totpSetupDetails
is not null
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
do you mean signInRes.nextStep.totpSetupDetails is not null for continueSignInWithMfaSetupSelection
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yes
case AuthSignInStep.continueSignInWithMfaSetupSelection: | ||
yield ContinueSignInWithMfaSetupSelection( | ||
allowedMfaTypes: result.nextStep.allowedMfaTypes, | ||
); | ||
case AuthSignInStep.continueSignInWithTotpSetup: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Q: do we need a case for continueSignInWithEmailMfaSetup
here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yep, this is in the next PR for authenticator changes
packages/authenticator/amplify_authenticator/lib/src/blocs/auth/auth_bloc.dart
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Q: did you re-generate this file or updated manually?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this was generated
packages/authenticator/amplify_authenticator/lib/src/blocs/auth/auth_bloc.dart
Outdated
Show resolved
Hide resolved
packages/auth/amplify_auth_cognito_dart/lib/src/state/machines/sign_in_state_machine.dart
Outdated
Show resolved
Hide resolved
packages/auth/amplify_auth_cognito_dart/lib/src/state/machines/sign_in_state_machine.dart
Outdated
Show resolved
Hide resolved
packages/auth/amplify_auth_cognito_dart/lib/src/state/machines/sign_in_state_machine.dart
Outdated
Show resolved
Hide resolved
packages/auth/amplify_auth_cognito_dart/lib/src/state/machines/sign_in_state_machine.dart
Outdated
Show resolved
Hide resolved
packages/auth/amplify_auth_cognito_dart/lib/src/state/machines/sign_in_state_machine.dart
Outdated
Show resolved
Hide resolved
@@ -35,7 +35,7 @@ void main() { | |||
signInRes.nextStep.signInStep, | |||
because: 'MFA is required, and TOTP is chosen when ' | |||
'no phone number is registered', | |||
).equals(AuthSignInStep.continueSignInWithTotpSetup); | |||
).equals(AuthSignInStep.continueSignInWithMfaSetupSelection); | |||
|
|||
final sharedSecret = signInRes.nextStep.totpSetupDetails!.sharedSecret; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
do you mean signInRes.nextStep.totpSetupDetails is not null for continueSignInWithMfaSetupSelection
?
email == MfaPreference.disabled || email == MfaPreference.notPreferred, | ||
_ => false, | ||
}; | ||
preferred = isCurrentPreferenceDisabled ? null : preferred; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
would you explain the logic behind this line? I can't understand why to set preferred to null when isCurrentPreferenceDisabled given than earlier prefered is set to newPreferredMethods.first if user has a newPreferredMethod.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For example, if a user passes in sms: MfaPreference.disabled
and nothing else. The user's current MfaPreference is sms: MfaPreference.preferred
. so the isCurrentPreferenceDisabled
checks to see that if a user disables the current null or makes it not preferred, that the current preferred choice is cleared.
packages/auth/amplify_auth_cognito_dart/lib/src/state/machines/sign_in_state_machine.dart
Outdated
Show resolved
Hide resolved
packages/auth/amplify_auth_cognito_dart/lib/src/state/machines/sign_in_state_machine.dart
Outdated
Show resolved
Hide resolved
packages/authenticator/amplify_authenticator/lib/src/blocs/auth/auth_bloc.dart
Outdated
Show resolved
Hide resolved
…t can be yielded to the stream
Issue #, if available:
Description of changes:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.