Prevent duplicate Login Flow v2 requests when the browser is still starting
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 68/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- cpp
- Ambito
- authentication, desktop
Direzione di ricerca
Inizia da AccountWizardController::initialiseAccount, startLoginFlowAutomatically e Flow2Auth::openBrowser() per ricostruire come gli avvii automatici e manuali del browser recuperano i token di accesso. Controlla il pulsante della procedura guidata dell’account e la gestione dello stato, poi aggiungi una protezione che impedisca un secondo flusso mentre si avvia il primo browser. Il lavoro è completato quando i clic ripetuti durante l’avvio non creano un altro flusso di accesso; verifica che la procedura guidata continui a completare l’accesso.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Version: desktop client 35.0.0 (ce977e3, Launchpad PPA nextcloud-devs/client), Ubuntu 26.04, GNOME, Firefox. Server 34.0.4.
Steps
- Configure
overrideServerUrl(e.g.nextcloud --overrideserverurl https://cloud.example). The account wizard then starts the login flow automatically (AccountWizardController::initialiseAccount→startLoginFlowAutomatically). - The browser isn't running yet, so it takes a few seconds to appear. Meanwhile the wizard shows "Switch to your browser" with an "Open" button.
- Click "Open" during that window. It calls
Flow2Auth::openBrowser()→fetchNewToken(): a secondPOST /index.php/login/v2and a secondxdg-open.
Result
The browser opens two tabs at once, sharing the session cookie. The server keeps a single login token and a single state token per session (ClientFlowLoginV2Controller::landing / showAuthPickerPage), so one tab gets "State token does not match" / 403. Depending on request order, the surviving tab may complete a flow the client no longer polls (the client only polls the newest token), and the account setup doesn't finish.
Expected
A second "Open" shortly after a token was fetched should not start a new flow until the first browser launch had a chance to show up. For example: disable the button for a few seconds after openBrowser, or show an "Opening your browser…" status.
Server access log (one attempt): one status.php / auth-type probe, then POST /index.php/login/v2 at t and t+2 s, two GET /login/v2/flow/<token> at t+4 s, and GET /login/v2/flow → 403 at t+6 s. The user confirmed they clicked "Open" once while waiting for the browser.
- Lingua principale
- C++
- Stelle
- 3.9k
- Fork
- 1k
- Merge medio
- 15h 28m
- PR unite (30g)
- 95
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di nextcloud/desktop
-
Nextcloud Desktop 34.0.4 fails TestLocalDiscovery::testFileOpenedAsDirectoryCompletesDiscoveryJob()Aperta0. Needs triage bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno
-
os: :penguin: Linux
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
nextcloud/desktop#10610 · 2 commenti · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
I maintainer di solito rispondono entro 1 giorno
-
0. Needs triage bug
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
nextcloud/desktop#11112 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di nextcloud/desktop
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
OpenSpace/OpenSpace#4353 · 1 commento ·
I maintainer di solito rispondono entro 5 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
-
macOS: a double-click on a notarized altairsim is refused, and the docs give only the offline caseForse già presa @anhaoXie l’ha presa oggi. Apertadocumentation
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
mutationpp/Mutationpp#337 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
bulletphysics/bullet3#4819 ·