In letzter Zeit gab es 16 Fälle, in denen Benutzer aus WordPress fälschlicherweise einem anderen Benutzer in Discourse zugeordnet wurden.
Wenn Sie als Administrator auf das Benutzerprofil zugreifen, können Sie sehen, dass der SSO-Eintrag die Details des falschen Benutzers enthält. Löschen Sie den Eintrag, und beim nächsten Login des Benutzers über WordPress erhält dieser Zugriff auf das korrekte Benutzerprofil in Discourse.
das scheint mit deinem vorherigen Problem zusammenzuhängen, dem wir damals nicht auf den Grund gehen konnten:
Wahrscheinlich lag es an einem Unterschied zwischen der E-Mail-Adresse in den SSO-Details und der E-Mail-Adresse beim Einloggen.
Das eigentliche Problem könnte dasselbe sein, das in diesem Fall vermutet wurde:
Ich vermute, das Problem liegt darin, dass require_activation im SSO-Payload auf true gesetzt ist.
Woher weißt du, dass die Daten falsch sind? Ich bezweifle das nicht, ich versuche nur herauszufinden, wo das Problem herkommen könnte. Falls du es lieber nicht öffentlich teilen möchtest, kannst du mir die Details per PN senden.
bei den migrierten Benutzern nicht übereinstimmten. Die Benutzer-ID und die E-Mail gehörten der Person, die sich angemeldet hatte, waren jedoch mit dem falschen Profil verknüpft.
Eine mögliche Ursache könnte sein, dass in einigen Fällen eine einzelne E-Mail-Adresse mehreren Benutzerkonten auf deiner WordPress-Instanz zugeordnet ist. Glaubst du, dass das möglich ist?
Hast du beispielsweise irgendwann einen benutzerdefinierten Registrierungsprozess in WordPress verwendet (bei dem Benutzer ihre E-Mail-Adresse nicht bestätigen mussten, bevor sie sich anmelden konnten) oder hast du Benutzer zu einem bestimmten Zeitpunkt nach WordPress importiert?
Ist dies ein anhaltendes Problem oder betrifft es nur eine Teilmenge der Benutzer? Sind diese Benutzerkonten alt oder neu?
Keine Sorge, Angus! Ich erwarte keine Aufmerksamkeit von dir!
Die Benutzerkonten werden über einen Kauf in WooCommerce erstellt. WooCommerce war früher auf einer Unterseite, aber die Seiten wurden zusammengelegt. Da die beiden Seiten dieselbe Benutzertabelle teilten, sollten die IDs zumindest theoretisch konstant geblieben sein.
Der Zugriff auf die Website wurde vor meiner Zeit über MemberMouse gesteuert. Seitdem – vor etwa fünf Jahren – wurde der Zugriff über iMember360 gesteuert und kürzlich durch Memberium ersetzt. Beide sind im Wesentlichen identische Plugins, die sich mit einem CRM namens Infusionsoft integrieren und den Zugriff auf verschiedene Seiten basierend auf Daten aus dem CRM ermöglichen.
Die Funktionsweise dieser Plugins erfordert eine eindeutige E-Mail-Adresse, sodass dieselbe E-Mail-Adresse nicht von mehreren Benutzern verwendet werden kann.
Das ist ein anhaltendes Problem, scheint aber auf eine sehr kleine Anzahl von Benutzern beschränkt zu sein. Es ist bereits bei zwei „alten" Benutzern aufgetreten und kürzlich auch bei einem fünf Tage alten Konto, sodass es nicht nur ein Problem für neue Benutzer ist.
Das ist eine knifflige Angelegenheit. Ich habe einige Theorien darüber, wie require_activation in Ihrer Einrichtung möglicherweise auf true gesetzt wird und dadurch dieses Problem verursacht, aber es gibt mehrere (Theorien), aus denen man wählen kann.
Ich bin derzeit dabei, eine neue Testreihe für das WP Discourse-Plugin abzuschließen und füge Protokollierungsfunktionen für die SSO-Funktionalität hinzu. Ich erstelle zusätzliche Protokollierungen, die die Ursache dafür aufdecken sollten. Diese Arbeiten werden im nächsten Monat in das Plugin integriert, sodass wir bald eine genauere Antwort haben sollten.