Render sign in form with Vue

What does this MR do and why?

Related to #574982

We want to migrate the sign in form to Vue so it gives us more flexibility for Organization/cells sign in. Specifically we will be moving to a two-step sign in flow where you first enter your email/username and then dynamically show the password field after an API call. See https://gitlab.com/gitlab-com/content-sites/handbook/-/blob/9d937082be9fa7dc03ded91e7510ee3c3e2eef13/content/handbook/engineering/architecture/design-documents/organization/decisions/007_organization_sign_in.md for the proposed sign in flow for Organizations/cells

See TODO section in the issue for TODOs that need to be completed after this MR is merged.

References

Screenshots or screen recordings

Before After
Screenshot_2025-12-01_at_3.20.59_PM Screenshot_2025-12-01_at_1.56.44_PM

With captcha enabled

Before After
Screenshot_2025-12-01_at_2.44.33_PM Screenshot_2025-12-01_at_2.16.28_PM
Before After
Screenshot_2025-12-01_at_2.44.50_PM Screenshot_2025-12-01_at_2.16.47_PM

Unconfirmed user

Before After
Screenshot_2025-12-01_at_3.21.19_PM Screenshot_2025-12-01_at_1.56.28_PM

SAML

Screen_Recording_2025-12-02_at_4.34.40_PM

OmniAuth (Google)

Screen_Recording_2025-12-02_at_4.17.20_PM

Passkeys

Screen_Recording_2025-12-02_at_4.18.24_PM

LDAP

Screen_Recording_2025-12-02_at_4.45.56_PM

Regular sign in with LDAP enabled

Screen_Recording_2025-12-02_at_4.47.06_PM

How to set up and validate locally

  1. Go to /rails/features and enable sign_in_form_vue feature flag
  2. Sign out
  3. Sign in

Recaptcha

See https://docs.gitlab.com/integration/recaptcha/

Unconfirmed users

See https://docs.gitlab.com/security/user_email_confirmation/

MR acceptance checklist

Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.

Edited by Peter Hegman

Merge request reports

Loading