È un fatto accertato che il messaggio di errore delle pagine di login non dovrebbe specificare se la password o l'id è il problema.
Ma per un'applicazione con autenticazione a più fattori dovremmo chiedere un altro fattore solo quando la coppia login / pass è corretta o ogni volta, solo per inviare un messaggio "autenticazione fallita" se uno dei due è errato.
L'opzione classica è, secondo me, migliore UX, poiché non fai in modo che l'utente raggiunga il suo telefono, chiave usb o qualunque sia il suo secondo fattore.
Chiedi sempre d'altra parte di impedire a un utente malintenzionato di verificare se ha ottenuto la buona password.
Quindi la domanda è: dovremmo chiedere ogni fattore ogni volta o solo dopo che il precedente è stato convalidato?
Nota: per il tipo di SMS multi fattore, l'invio degli sms in caso di nome utente esistente ma la password sbagliata è discutibile ma per favore non tenerne conto, in quanto amplierebbe inutilmente la domanda.