feat(auth): add prompt parameter to signInWithRedirect #14464
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.
Description of changes
This PR adds support for the optional prompt parameter (authorization-endpoint.html) to signInWithRedirect.
The prompt parameter is a part of the OpenID Connect (OIDC) specification and allows clients to request specific authentication flows from the authorization server. It requires that the managed branding (and not hosted ui classic) to be set in the user pool.
We already had a PR that was adding the
login
prompt but decided to support all prompt values.The signInWithRedirect works by generating an URL that is invoked. We can add the prompt parameter to that URL by appending it to the dictionary.
Also, as we currently block requests to signInWithRedirect if the user is already logged in, we need to allow invocations of signInWithRedirect for logged-in users. This is because all of the flows are supposed to change the behavior for an already signed in user.
Usage Example
Issue #, if available
#4044
This PR replaces #14413
Description of how you validated changes
I setup an example project with different providers and validated that the different flows are triggered succesfully.
Run E2E tests: https://github.com/aws-amplify/amplify-js/actions/runs/16370175117
Checklist
yarn test
passesChecklist for repo maintainers
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.