Einrichtung von DiscourseConnect – Offizielles Single-Sign-On für Discourse (sso)

Ich glaube, Ihre Hauptfrage bezieht sich auf das Feld external_id. Sie müssen ein Feld external_id in der DiscourseConnect-Nutzlast festlegen. Der Wert des Feldes sollte eine Zeichenfolge sein, die mit dem Benutzer verknüpft ist und sich niemals ändert. Ich gehe davon aus, dass Ihre Anwendung eine Benutzertabelle hat. Der Primärschlüssel für den Eintrag eines Benutzers in dieser Tabelle wäre gut geeignet, um den Wert des Feldes external_id zu verwenden.

Wenn ein Benutzer ein Konto in Discourse erstellt hat, bevor Sie die DiscourseConnect-Authentifizierung von Ihrer Website aus hinzugefügt haben, versucht Discourse beim ersten Mal, wenn sich der Benutzer über DiscourseConnect bei Discourse anmeldet, den Benutzer anhand der E-Mail-Adresse zu finden, die sich in der DiscourseConnect-Nutzlast befindet. Nach dem Auffinden des Benutzers wird ein Eintrag in der Discourse-Datenbank hinzugefügt, der die external_id aus der DiscourseConnect-Nutzlast enthält. Wenn sich der Benutzer das nächste Mal anmeldet, wird er anhand der external_id und nicht anhand der E-Mail-Adresse gefunden. (Beachten Sie, dass dies nicht funktioniert, wenn Sie den Parameter require_activation in der DiscourseConnect-Nutzlast auf true setzen.)

Discourse verfügt über gute Fallback-Mechanismen für die meisten Sonderfälle. Es gibt Probleme im Zusammenhang mit Benutzern, die mehrere Konten und E-Mail-Adressen haben, die Fehler auslösen können. Einige Details zur Behandlung dieser Fälle finden Sie hier: Debuggen und Beheben häufiger DiscourseConnect-Probleme.

1 „Gefällt mir“