-
Notifications
You must be signed in to change notification settings - Fork 249
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
fix(auth): Uncaught Hosted UI cancellation #3686
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
`unawaited` will still raise an error if there is one. By using `EventCompleter.ignore` we drop all completions, success or error.
The HostedUIPlatform had a bug due to the fact that it both called `dispatcher.dispatchAndComplete` (which throws on failure states) and throwing a `UserCancelledException` which triggers a failure state. This lead to the error being thrown from `signInWithWebUI` and an uncaught exception being raised at the `dispatchAndComplete` call. This resolves the issue by only throwing from the HostedUiPlatform and letting the state machine resolving the cancellation. This also fixes an issue where `cancelSignIn` was never being called because the state machine was in a `signingIn` state at the time the cancellation was dispatched.
Closed
14 tasks
Jordan-Nelson
approved these changes
Sep 5, 2023
Equartey
approved these changes
Sep 5, 2023
dnys1
added a commit
that referenced
this pull request
Sep 11, 2023
* chore(auth): Use `EventCompleter.ignore` instead of `unawaited` `unawaited` will still raise an error if there is one. By using `EventCompleter.ignore` we drop all completions, success or error. * fix(auth): Uncaught Hosted UI cancellation The HostedUIPlatform had a bug due to the fact that it both called `dispatcher.dispatchAndComplete` (which throws on failure states) and throwing a `UserCancelledException` which triggers a failure state. This lead to the error being thrown from `signInWithWebUI` and an uncaught exception being raised at the `dispatchAndComplete` call. This resolves the issue by only throwing from the HostedUiPlatform and letting the state machine resolving the cancellation. This also fixes an issue where `cancelSignIn` was never being called because the state machine was in a `signingIn` state at the time the cancellation was dispatched.
dnys1
pushed a commit
that referenced
this pull request
Sep 11, 2023
### Fixes - fix(auth): Crash with EXC_BAD_ACCESS ([#3657](#3657)) - fix(auth): Custom auth with device tracking, no SRP ([#3652](#3652)) - fix(auth): Uncaught Hosted UI cancellation ([#3686](#3686)) - fix: removed trailing slash at the end of uri ([#3626](#3626)) Updated-Components: amplify_lints, Amplify Flutter, Amplify Dart, Amplify UI, DB Common, Secure Storage, AWS Common, Smithy, Worker Bee
dnys1
added a commit
that referenced
this pull request
Sep 11, 2023
* chore(auth): Use `EventCompleter.ignore` instead of `unawaited` `unawaited` will still raise an error if there is one. By using `EventCompleter.ignore` we drop all completions, success or error. * fix(auth): Uncaught Hosted UI cancellation The HostedUIPlatform had a bug due to the fact that it both called `dispatcher.dispatchAndComplete` (which throws on failure states) and throwing a `UserCancelledException` which triggers a failure state. This lead to the error being thrown from `signInWithWebUI` and an uncaught exception being raised at the `dispatchAndComplete` call. This resolves the issue by only throwing from the HostedUiPlatform and letting the state machine resolving the cancellation. This also fixes an issue where `cancelSignIn` was never being called because the state machine was in a `signingIn` state at the time the cancellation was dispatched.
dnys1
pushed a commit
that referenced
this pull request
Sep 11, 2023
### Fixes - fix(auth): Crash with EXC_BAD_ACCESS ([#3657](#3657)) - fix(auth): Custom auth with device tracking, no SRP ([#3652](#3652)) - fix(auth): Uncaught Hosted UI cancellation ([#3686](#3686)) - fix: removed trailing slash at the end of uri ([#3626](#3626)) Updated-Components: amplify_lints, Amplify Flutter, Amplify Dart, Amplify UI, DB Common, Secure Storage, AWS Common, Smithy, Worker Bee
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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 HostedUIPlatform had a bug due to the fact that it both called
dispatcher.dispatchAndComplete
(which throws on failure states) and threw aUserCancelledException
which triggers a failure state. This lead to the error being thrown fromsignInWithWebUI
and an uncaught exception being raised at thedispatchAndComplete
call.This resolves the issue by only throwing from the HostedUiPlatform and letting the state machine resolving the cancellation.
This also fixes an issue where
cancelSignIn
was never being called because the state machine was in asigningIn
state at the time the cancellation was dispatched.