Skip to content
This repository has been archived by the owner on Mar 3, 2022. It is now read-only.

UserManager.signinRedirect() returns a resolved promise even when the redirection isn't finalized #1363

Open
Lautaro-Garcia opened this issue May 5, 2021 · 2 comments
Labels

Comments

@Lautaro-Garcia
Copy link

Hello! Thank you for mantaining this library, I've been using it for some time now, and yesterday I found a case that I wasn't expecting. I don't know if it's the desired use case for that API. If it is, ignore this issue.

So, if I use the UserManager#signinRedirect() method to start the sign-in process it returns a resolved promise, allowing code that's hooked up in a .then() method to run even when the page will eventually change to the login page:

async foo() {
  await userManager.signinRedirect();
  console.log('something');  // <- This may run, depending on how quickly the browser changes pages
}

I expected that signinRedirect() would stop the execution flow (because the user will be redirected to a new URL). Wouldn't it be better if it returned a pending promise, so if the library user awaits the redirection it won't keep executing things? I wrote this as a question, because maybe you implemented this in that way to support another feature that I'm not using 🤔

@egbertn
Copy link

egbertn commented May 24, 2021

Hey I am not the author, but signinRedirect make the browser navigate to a new page. That means, any current scripts would stop anyway.
The place where the flow continues would be at signinRedirectCallback() which you need to implement.

@Lautaro-Garcia
Copy link
Author

That's correct, I would expect that the things "below" the signinRedirect() wouldn't be executed, but that's not what I found in practice. Maybe it's because my browser doesn't change pages that quickly (I tested it with both Firefox and Chrome).

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Development

No branches or pull requests

3 participants