fix(auth): hostedui extract error_description query pararm #3183
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.
Issue #
Description
If an
error
query parameter is included in the HostedUI callback, we currently throw a.service
error with the value of theerror
key, omitting important information that may be needed by the caller. With this change, we now attempt to extract and use the value fromerror_description
; if it doesn't exist, we fall back to theerror
we know is there. The fall back toerror
is necessary becauseerror_description
is optional according to the spec.This change brings Amplify Swift in parity with Android, Flutter, and JS.
In the linked issue, we can see a specific use case the current behavior is blocking - client side logic based on information contained in an error thrown by a
PreSignUp_ExternalProvider
Lambda trigger. [Service Documentation]Testing
In addition to the added test cases, this change was manually tested with a
PreSignUp
Lambda trigger:and the following client side code:
Breaking in the first
catch
block andpo
'ing the error -Targeting v2.16.0 (current latest release), we see:
Targeting branch
hostedui_errordescription
, we see:General Checklist
Documentation update for the change if requiredGiven When Then
inline code documentation and are named accordinglytestThing_condition_expectation()
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.