Skip to content

Signout does not complete when closing the browser without action #2598

@niihofutoshi

Description

@niihofutoshi

Before opening, please confirm:

Language and Async Model

Kotlin - Coroutines

Amplify Categories

Authentication

Gradle script dependencies

// libs.versions.toml
// Put output below this line

[versions]
amplify = "2.13.2"

[libraries]
amplify-core = { module = "com.amplifyframework:core-kotlin", version.ref = "amplify" }
amplify-cognito = { module = "com.amplifyframework:aws-auth-cognito", version.ref = "amplify" }
amplify-pinpoint = { module = "com.amplifyframework:aws-push-notifications-pinpoint", version.ref = "amplify" }

Environment information

# Put output below this line
------------------------------------------------------------
Gradle 8.3
------------------------------------------------------------

Build time:   2023-08-17 07:06:47 UTC
Revision:     8afbf24b469158b714b36e84c6f4d4976c86fcd5

Kotlin:       1.9.0
Groovy:       3.0.17
Ant:          Apache Ant(TM) version 1.10.13 compiled on January 4 2023
JVM:          20.0.1 (Homebrew 20.0.1)
OS:           Mac OS X 13.4 aarch64

Please include any relevant guides or documentation you're referencing

Signout does not complete when closing the browser without action

Describe the bug

When calling signout, if the browser is displayed and then closed without any action, the signout process does not complete.

To Reproduce

  1. Authenticate using UserPool.
  2. Use signInWithSocialWebUI for login.
  3. Call the signout method.
  4. When the browser is displayed, close it without any action.(If the browser doesn't display, it might be helpful to try it offline.)
  5. Observe that the signout process does not complete.

Expected behavior
The signout process should either complete or throw an error when the browser is closed without any action.

Possible Cause
When the browser is closed without any action, a CancelSignOut event is issued.
Currently, only the sign-in state is restored at this event. (authentication, autorization
It might be necessary in the _signout event synchronization process to wait for the SignoutCancel event and call an error in onComplete when the SignoutCancel event is received.

Reproduction steps (if applicable)

No response

Code Snippet

// Put your code below this line.

println("a") // output "a"
val signOutResult = Amplify.Auth.signOut(options)
println("a") // <- does not call

Log output

// Put your logs below this line


amplifyconfiguration.json

No response

GraphQL Schema

// Put your schema below this line

Additional information and screenshots

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    authRelated to the Auth category/pluginsbugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions