Skip to content

feat(auth): add prompt parameter to signInWithRedirect #14464

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

Open
wants to merge 4 commits into
base: main
Choose a base branch
from

Conversation

adrianjoshua-strutt
Copy link
Member

@adrianjoshua-strutt adrianjoshua-strutt commented Jul 11, 2025

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

    await signInWithRedirect({ provider: selected_provider });

    await signInWithRedirect({ provider: selected_provider, options: {prompt: 'NONE'}});

    await signInWithRedirect({ provider: selected_provider, options: {prompt: 'LOGIN'}});

    await signInWithRedirect({ provider: selected_provider, options: {prompt: 'CONSENT'}});

    await signInWithRedirect({ provider: selected_provider,options: {prompt: 'SELECT_ACCOUNT'}});

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

  • PR description included
  • yarn test passes
  • Unit Tests are changed or added
  • Relevant documentation is changed or added (and PR referenced)

Checklist for repo maintainers

  • Verify E2E tests for existing workflows are working as expected or add E2E tests for newly added workflows
  • New source file paths included in this PR have been added to CODEOWNERS, if appropriate

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

@adrianjoshua-strutt adrianjoshua-strutt changed the title feat: add prompt parameter to signInWithRedirect feat(auth): add prompt parameter to signInWithRedirect Jul 11, 2025
@adrianjoshua-strutt adrianjoshua-strutt added run-tests run the pr-label workflow and removed run-tests run the pr-label workflow labels Jul 17, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant