[feature]: Single-screen login fast-path when password is the only enabled auth method
Maintainers usually reply within 1 day
@vihar is already working on this.
Since Sep 2, 2026.
Assessment
This issue has not been assessed yet.
Description
Is there an existing issue for this?
- I have searched the existing issues
Summary
Summary
When an instance has only email+password enabled (magic login off, no OAuth providers), the identifier-first flow — email screen → backend emailCheck → password screen — adds a roundtrip and a screen for a decision that has exactly one outcome. Render email + password on one screen in that case.
Current behavior
auth-root.tsx always starts at EAuthSteps.EMAIL, submits the email to the emailCheck endpoint (auth.service.ts), and only then routes to EAuthSteps.PASSWORD / UNIQUE_CODE and SIGN_IN / SIGN_UP. This branching exists to pick between password, magic-code, and OAuth. On an instance where password is the sole method there is nothing to branch on, yet users still pay:
- an extra network roundtrip and a second screen/click on every login;
- flaky password-manager autofill — the password field isn't in the DOM at page load, so Bitwarden/1Password can't do a standard single-shot fill (see the companion autocomplete-token issue);
- account enumeration: the
emailCheckresponse distinguishes existing vs non-existing users before any credential is supplied, which lets an unauthenticated caller enumerate valid accounts. A combined email+password screen that returns a single generic "invalid email or password" removes that oracle.
Proposed behavior
Keep identifier-first whenever more than one auth method is enabled (magic-code and/or OAuth) — that's where it earns its keep. When the instance config exposes password as the only method (is_email_password_enabled === true && is_magic_login_enabled === false and no OAuth providers), render a single classic login form: email (autocomplete="username") + password (autocomplete="current-password") together, submitting directly.
This is:
- backward compatible — multi-method instances are unchanged;
- config-driven — decided from the same instance config
auth-root.tsxalready reads; - a security improvement — no pre-credential existence oracle on single-method instances.
Why should this be worked on?
Rationale
Self-hosted single-tenant instances are the common case, and many run password-only. For them the identifier-first machinery is friction with no upside: worse UX, broken autofill, and a user-enumeration surface. Gating it on "more than one method enabled" preserves the flexibility where it matters and drops the cost where it doesn't.
References
- Companion bug #9739 : autocomplete tokens on auth inputs (
autocomplete="off"from #8517 breaks password managers / fails WCAG 1.3.5)
- Dominant language
- TypeScript
- Stars
- 60.7k
- Forks
- 6k
- Avg merge
- 1d 9h
- Merged PRs (30d)
- 56
Getting set up
- Ships a Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from makeplane/plane
-
[bug]: Email notifications show a broken avatar for users without a profile photoPossibly taken @gurnoorpannu claimed this 3 days ago. Open
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
makeplane/plane#10009 · 1 comment ·
Maintainers usually reply within 1 day
-
🐛 Bug: Calendar work items cannot be opened on mobilePossibly taken @pennnnnnnnnn claimed this 5 days ago. Open
Difficulty 1/5 Under an hour Newbie friendliness 75/100
Maintainers usually reply within 1 day
-
[bug]: First day of the week section not translated when Idioma is EspañolPossibly taken @deepcfr claimed this 8 days ago. Open
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
makeplane/plane#9967 · 2 comments ·
Maintainers usually reply within 1 day
-
[bug]: First day of the week section not translated when Idioma is EspañolPossibly taken @Indira-kumar claimed this 6 days ago. Open
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Maintainers usually reply within 1 day
-
[bug]: Analytics "Last 7 / 30 days" windows cover one day too manyPossibly taken @manaskumar3003 claimed this 33 days ago. Open
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
makeplane/plane#9830 · 1 comment ·
Maintainers usually reply within 1 day
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
jbacalso24/mimry#459 · 1 comment ·
Maintainers usually reply within 1 day
-
architecture help wanted hive/claimed-by-architect origin/architect stage/030-pr-in-progress tech-debt
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
kubestellar/console#24422 · 1 comment ·
Maintainers usually reply within 1 day
-
area: backends type: docs
Difficulty 1/5 1-3 hours Newbie friendliness 83/100
schlessera/brain-kit#2383 ·
Maintainers usually reply within 1 day
-
agent duplicate providers tool triaged
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
Maintainers usually reply within 1 day