Neue E-Mail nicht bestätigbar, wenn Zwei-Faktor-Backup-Codes aktiviert sind

Wenn zweistufige Backup-Codes aktiviert sind, schlägt die Bestätigung einer neuen E-Mail-Adresse mit folgendem Fehler fehl:

Hoppla

Die Software, die dieses Diskussionsforum betreibt, ist auf ein unerwartetes Problem gestoßen. Wir entschuldigen uns für die Unannehmlichkeiten.

Detaillierte Informationen über den Fehler wurden protokolliert, und eine automatische Benachrichtigung wurde generiert. Wir werden uns das ansehen.

Es sind keine weiteren Schritte erforderlich. Sollte der Fehler jedoch weiterhin auftreten, können Sie zusätzliche Details bereitstellen, einschließlich der Schritte zur Reproduktion des Fehlers, indem Sie einen Diskussionsbeitrag in der Feedback-Kategorie der Website veröffentlichen.

Dies tritt bei mehreren Discourse-Installationen auf und ist also nicht auf eine spezifische Instanz beschränkt.

Das Deaktivieren der Funktion zweistufige Backup-Codes löst das Problem, und die E-Mail-Bestätigung funktioniert einwandfrei.

Vollständige Schritte zur Reproduktion des Problems:

  • Beginnen Sie mit einem Konto auf einem beliebigen Discourse (zum Testen kann https://try.discourse.org/ verwendet werden)
  • Richten Sie 2FA mit TOTP ein (physische Sicherheitsschlüssel wurden noch nicht getestet)
  • Ändern Sie die E-Mail-Adresse Ihres Kontos
  • Klicken Sie auf die Bestätigungs-E-Mail, die an das neue E-Mail-Postfach gesendet wurde. Beachten Sie, dass die Bestätigung erfolgreich ist.
  • Aktivieren Sie zweistufige Backup-Codes in Ihren 2FA-Einstellungen.
  • Ändern Sie die E-Mail-Adresse des Kontos erneut.
  • Klicken Sie auf die Bestätigungs-E-Mail, die an das neueste E-Mail-Postfach gesendet wurde. Beachten Sie, dass die Bestätigung mit dem oben genannten Fehler fehlschlägt.
  • Deaktivieren Sie zweistufige Backup-Codes.
  • Ändern Sie die E-Mail-Adresse erneut.
  • Klicken Sie auf die Bestätigungs-E-Mail, die an die neueste Adresse gesendet wurde.
  • Sie werden aufgefordert, den TOTP-Code einzugeben.
  • Diesmal wird die Bestätigung der neuesten E-Mail-Adresse erfolgreich durchgeführt.
4 „Gefällt mir“

Hast du im Webbrowser, während du als Administrator eingeloggt bist, unter /logs nachgeschaut, um zu sehen, was der tatsächliche Fehler ist? Ich denke, wir hätten das auf unseren Seiten bemerkt, wenn es sich um einen echten Fehler handeln würde.

Außerdem: Bezieht sich das auf Sicherheitsschlüssel oder TOTP-Token? Unabhängig davon benötigen wir hier konkrete Schritte zur Reproduktion (entweder in einer Entwicklungsumgebung oder auf try.discourse.org), damit wir das bestätigen können.

3 „Gefällt mir“

Nur als kleiner Hinweis: Auf Caddys Foren scheinen keine relevanten protokollierten Fehler aufgetreten zu sein.

2 „Gefällt mir“

Danke für die Verlinkung der Threads!

Guter Punkt. Dies stellt sich als Problem heraus, das nur auftritt, wenn zwei-Faktor-Backup-Codes aktiviert sind. Ich habe den Beitrag mit den neuen Details und Schritten zur Reproduktion aktualisiert.

1 „Gefällt mir“

Was hältst du von diesen Reproduktionsschritten @tshenry? Die Reihenfolge kommt mir etwas seltsam vor.

1 „Gefällt mir“

Ich wollte nicht sagen, dass die E-Mail mehrfach aktualisiert werden muss. Es geht darum, dass die E-Mail-Verifizierung nur dann fehlschlägt, wenn Backup-Codes aktiviert sind, und nicht sonst.

Hier liegt definitiv ein Fehler vor. Um die Schritte zur Reproduktion etwas zu verfeinern:

  1. 2FA mit TOTP einrichten
  2. Backup-Codes aktivieren
  3. E-Mail-Adresse ändern
  4. Den Bestätigungslink in der Bestätigungs-E-Mail anklicken
  5. Auf die „Oops"-Seite geleitet werden

Ich kann bestätigen, dass das Deaktivieren der Backup-Codes das Problem sofort behebt, selbst wenn derselbe E-Mail-Bestätigungslink verwendet wird.

Das Fehlerprotokoll zeigt:

ActionView::Template::Error (Missing partial common/_second_factor_form_script with {:locale=>[:en_US, :en], :formats=>[:html], :variants=>[], :handlers=>[:raw, :erb, :html, :builder, :ruby]}. Searched in:
  * "/var/www/discourse/app/views"
)
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionview-6.0.1/lib/action_view/path_set.rb:48:in `find'

Ich vermute, dass dies mit dieser Zeile hier zusammenhängt: https://github.com/discourse/discourse/blob/master/app/views/users_email/confirm.html.erb#L36

Diese verweist auf eine Datei, die tatsächlich fehlt: discourse/app/views/common at main · discourse/discourse · GitHub

8 „Gefällt mir“

Danke @arun — wir sollten das mit @eviltrout beheben.

4 „Gefällt mir“

Dies wurde durch diesen Commit behoben:

7 „Gefällt mir“