feat(auth): add userID property to AuthSignUpResult #3192
Merged
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.
The original PR #3179 was reverted so that another change could be released first.
See #3191 for reference.
Description
Adds a
userID
property toAuthSignUpResult
.Currently, this property is accessible when the
AuthSignUpResult().nextStep
isAuthSignUpStep.confirmUser
through the case's associated values.The typical flow is
signUp() --> .confirmUser --> confirmSignUp() --> .done
.confirmSignUp
(ConfirmSignUp) doesn't return auserID
(UserSub
). However,signUp() --> .done
is also a valid flow with the use of a custom verification flow. In this case, we receive theuserID
but we're preventing the caller from accessing it. This change provides theuserID
in theAuthSignUpResult
if it's returned by the service, regardless of thenextStep
.Platform Parity
This change brings Amplify Swift in parity with Android, Flutter, and JS.
NOTE:
This change can be confusing because
AuthSignUpResult
andAuthSignUpStep.confirmUser
both contain the sameuserID
value.The associated value on
.confirmUser
is no longer necessary, but removing would be a breaking change. Something to consider for vNext.Misc. Changes
Moved from
wait(for:)
toawait fulfillment(of:)
for two test cases that were being problematic.General Checklist
Documentation update for the change if requiredGiven When Then
inline code documentation and are named accordinglytestThing_condition_expectation()
If breaking change, documentation/changelog update with migration instructionsBy submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.