Neue Anmeldung mit alter E-Mail, die + enthält, funktioniert nicht in der REST-API

Es scheint, dass in einem aktuellen Update die Neuanmeldung mit derselben E-Mail-Adresse, einschließlich eines + zur Darstellung einer neuen E-Mail, nicht mehr erlaubt ist. Mein System ist stark davon abhängig. Wie kann ich es wieder aktivieren?

Zum Beispiel, wenn ich mich bereits mit email@gmail.com angemeldet habe, kann ich mich nicht mit email+1@gmail.com anmelden.

Übrigens teste ich dies mit der REST-API.

Außerdem ist diese Option nicht aktiviert:

Ich glaube, das ist die Admin-Einstellung normalize emails: :+1:

Bearbeiten: Ich habe diese Bearbeitung nicht gesehen, bevor ich gepostet habe. :slight_smile:

1 „Gefällt mir“

Ja, es ist für mich bereits deaktiviert

1 „Gefällt mir“

Ich kann dies auf try.discourse.org nicht reproduzieren.

Können Sie sich über die normale Benutzeroberfläche mit dieser E-Mail-Adresse registrieren?

Überprüfen Sie außerdem noch einmal, ob die E-Mail-Adresse +1 nicht bereits für eine Registrierung verwendet wurde.

1 „Gefällt mir“

Ja, die normale Benutzeroberfläche ist in Ordnung. Die REST-API ist nicht in Ordnung.

Ich habe genau das Gleiche getan und konnte das Problem im neuesten Code, der live läuft, nicht reproduzieren – er verhielt sich wie erwartet, wenn die Einstellung normalize emails deaktiviert war:

Können Sie die Ausgabe von Folgendem aus der Rails-Konsole zeigen:

[1] pry(main)> SiteSetting.normalize_emails

[2] pry(main)> User.find_by_email('DEINBENUTZERNAME@gmail.com').username

[3] pry(main)> User.find_by_email('DEINBENUTZERNAME+1@gmail.com').username

Welche Version von Discourse verwenden Sie außerdem?

Ich würde auch noch einmal überprüfen, ob Sie Ihre Produktionsseite und nicht Ihre Testseite aufrufen (oder umgekehrt).

2 „Gefällt mir“

Ich habe gerade aktualisiert

Hier ist sie

Was bedeuten diese?\n\n\u003e

\n\n(und können Sie sie hier kopieren/einfügen)\n\nDas hätte ich zuerst fragen sollen :man_facepalming:

„Primäre E-Mail ist nicht zulässig.“
Das ist eine Übersetzung für user.email.blocked

hmmm

es scheint, dass die normalisierte E-Mail blockiert ist. :thinking:

Ich meine, wenn email@gmail.com blockiert ist, dann ist email+1@gmail.com auch blockiert. Das ist seltsam für mich, wenn ich die Option „E-Mail nicht normalisieren“ nicht ausgewählt habe.

Deshalb hätte ich zuerst fragen sollen, anstatt anzunehmen, dass es „bereits vergeben“ war :rofl:
Welche Einstellungen wurden in den E-Mail- und Benutzerkategorien überschrieben?
Haben Sie diese E-Mail-Adresse oder beispielsweise die Gmail-Domain blockiert?

1 „Gefällt mir“

Ich habe das nicht verstanden. Wo soll ich nachsehen?

Ja, ich sehe, dass die normalisierte E-Mail-Adresse blockiert ist.

In diesem Fall blockieren wir mit ziemlicher Sicherheit Subadressen von blockierten Adressen, unabhängig von der Einstellung, als Maßnahme gegen Griefing, da die Option zur Normalisierung nicht der Standard ist.

“Nur überschriebene anzeigen” in den Einstellungen. Aber jetzt vermute ich, dass wir uns darum keine Sorgen machen müssen.

2 „Gefällt mir“

Zurück an meinem Schreibtisch habe ich mir den tatsächlichen Code angesehen, der diese Ablehnung durchführt:

Ganz oben prüfen wir die kanonische E-Mail gegen die Sperrliste:

  def self.canonical(email)
    name, domain = email.split("@", 2)
    name = name.gsub(/\+.*/, "")
    name = name.gsub(".", "") if %w[gmail.com googlemail.com].include?(domain.downcase)
    "#{name}@#{domain}".downcase
  end

Und selbst wenn das es nicht erfasst hätte, würde es durch die Levenshtein-Distanz-Prüfung hier erfasst werden:

[1] pry(main)> ScreenedEmail.levenshtein('fakezabanshenas@gmail.com', 'fakezabanshenas+1@gmail.com')
=> 2

da der Standard für SiteSetting.levenshtein_distance_spammer_emails 2 ist.

2 „Gefällt mir“

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.