Integration in ein benutzerdefiniertes Authentifizierungssystem, bei dem E-Mails nicht eindeutig sind

Ja. Dazu müssen Sie die Website-Einstellung auth overrides email aktivieren. Wenn diese Einstellung aktiviert ist, wird die Discourse-E-Mail eines Benutzers bei jeder Anmeldung mit der E-Mail-Adresse synchronisiert, die in der Auth-Payload enthalten ist (in Ihrem Fall die DiscourseConnect-Payload). Wenn sie nicht aktiviert ist, wird die E-Mail-Adresse des Benutzers bei der erstmaligen Erstellung des Kontos auf die E-Mail-Adresse in der Auth-Payload gesetzt, aber bei nachfolgenden Anmeldungen nicht aktualisiert.

Unter der Annahme, dass auth overrides email aktiviert ist, können Sie sie auch aktualisieren, ohne dass sich Benutzer anmelden müssen, indem Sie eine API-Anforderung an die Route sync_sso senden: Sync DiscourseConnect user data with the sync_sso route.

Sie könnten auch die E-Mail-Adressen der Benutzer per Massenupload von der Rails-Konsole der Website aus aktualisieren, aber (ich glaube) auf diese Weise wird eine Bestätigungs-E-Mail von Discourse an den Benutzer gesendet. Das funktioniert nicht mit gefälschten E-Mail-Adressen.

Vielleicht könnten Sie die E-Mails zunächst einfach auf etwas Aussagekräftiges setzen. Sobald Sie eine Discourse-Website eingerichtet haben, sollten Sie einige Tests durchführen, um zu sehen, welche E-Mail-Domains Discourse für gefälschte E-Mails akzeptiert. Aus dem Gedächtnis glaube ich, dass @invalid.com akzeptiert wird. Bei anderen Domains bin ich mir nicht sicher. Auf Ihrer Seite könnten Sie etwas wie <userId>@invalid.com der tatsächlichen E-Mail-Adresse des Benutzers zuordnen.