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

Merged
merged 5 commits into from
Jul 24, 2025

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
soberm
soberm previously approved these changes Jul 23, 2025
Simone319
Simone319 previously approved these changes Jul 23, 2025
@adrianjoshua-strutt adrianjoshua-strutt force-pushed the feat/josh/signInWithRedirectPrompt branch from 92cb882 to 1c5c359 Compare July 23, 2025 13:20
sarayev
sarayev previously approved these changes Jul 24, 2025
osama-rizk
osama-rizk previously approved these changes Jul 24, 2025
@adrianjoshua-strutt adrianjoshua-strutt force-pushed the feat/josh/signInWithRedirectPrompt branch from db60f1d to 431027c Compare July 24, 2025 16:24
@adrianjoshua-strutt adrianjoshua-strutt merged commit 76548ca into main Jul 24, 2025
30 checks passed
@adrianjoshua-strutt adrianjoshua-strutt deleted the feat/josh/signInWithRedirectPrompt branch July 24, 2025 16:42
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.

6 participants