nextcloud / nextcloud/server

Move to staged login form

Open
#34,766 3 comments 3 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

1. to develop design enhancement feature: authentication
Dominant language
PHP
Stars
36.9k
Forks
5.2k
Avg merge
2d 3h
Merged PRs (30d)
713

Description

The current login flow of Nextcloud is just a single form.
image

This is great and all. But it becomes a bit meh when using more advanced authentication. It just doesn't flow right.

For example 2FA.
image

This is always another click. Github and google follow this flow nicer I think. By directly probing you for your 'prefered' 2fa method.
I know this is something slightly different. But maybe for a followup we could look at the way we do 2fa. Take the notification method here. That could just always fire.

The login flow becomes even less nice if you wanna use webauthn
You have to press login with device. And then do your thing.

image

There are of course quite some design decisions and discussions. But like I said I feel the way that google/github/other big bag tech do it is something people are used to and would fit nicer. So more like an authentication flow.

  1. Enter your usename/email
  2. Check if we can use webauthn
    a. if we can. Show button "authenticate with device" (or whatever) ( use https://www.twilio.com/blog/detect-browser-support-webauthn for example, together with info about the user if they have webauthn enabled)
    b. If we can't or user pressed "no use password" show password field
  3. If authentication works directly show the 2fa choices
    a. as mentined above maybe remember the "prefered" way to always use that?

This would feel more modern and smooth IMO.

CC: @ChristophWurst as we talked about this a bit, @jancborchardt as always

P.s. I won't be able to drive this but wanted to get this out there

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating Nextcloud's current login flow and the existing WebAuthn and 2FA entry points; the issue names no files or tests. Review the proposed staged sequence and related design decisions, then define completion as a working username-first flow that offers device authentication, password fallback, and subsequent 2FA choices.

Written by the indexing model from the issue text.

Assessment

Tech stack
php
Domain
authentication, frontend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.