Skip to content

Calling performAuthorizationRequest multiple times blocks NodeBasedHandler forever #135

@pixtron

Description

@pixtron

Expected Behavior

Describe expected behavior

If performAuthorizationRequest is called more than once without completing the flow of the first call, the authorization flow from the first call should still be able to finish.

Describe the problem

Actual Behavior

After two calls to performAuthorizationRequest Server from first call to performAuthorizationRequest is still alive, if it receives a valid authorization response, it resolves the this.authorizationResponse Promise. But with the second call to performAuthorizationRequest the this.authorizationResponse promise from the first call to performAuthorizationRequest gets replaced with another one.

The first call therefore resolves a promise which is not anymore "accessible". The call to completeAuthorizationRequest invoked by completeAuthorizationRequestIfPossible returns the this.authorizationResponse promise, which throws an error or never resolves in the case of #95.

The user could only sign in, after restarting the app.

Steps to reproduce the behavior

1.) Start the example electron app (googlesamples/appauth-js-electron-sample)
2.) Click "Sign in"
3.) Go back to the app without completing consent screen, but keeping the tab open
4.) Click "Sign in" again
5.) Close newly opened tab without completing consent screen
6.) Complete consent screen in the tab opened with the first click on "Sign in"

Environment

  • AppAuth-JS version: 1.2.6
  • AppAuth-JS Environment : Node

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions