SSO: Abmeldung nicht möglich

Ich hätte gerne einen Rat. :slight_smile:

Wir nutzen WordPress als SSO-Anbieter (wir verwalten den Zugriff auf Discourse und LMS-Inhalte mit MemberPress in WordPress). Die Registrierung und Anmeldung neuer Benutzer funktioniert einwandfrei – aber ich kann mich scheinbar nicht abmelden.

Ich habe die Weiterleitung mit ?request=logout hinzugefügt, doch sobald ich die Abmeldung neu lade, bin ich wieder angemeldet.

Zuerst dachte ich, es könnte daran liegen, dass WordPress in einem anderen Browser-Tab offen ist, aber das Verhalten tritt auch dann noch auf, nachdem ich mich bei WordPress abgemeldet und den Tab geschlossen habe.

Es fühlt sich so an, als wären wir den Lösung wirklich sehr nah. Ich hoffe, jemand hat Lust, Tipps zur Fehlerbehebung zu teilen, damit wir das Problem endlich lösen können.

Vielen Dank.

Hier ist ein kleines GIF, das zwei aufeinanderfolgende Abmeldungen demonstriert:

Und hier sind Screenshots meiner SSO-Einstellungen in WordPress:

Und in Discourse:

Es sieht so aus, als ob alles korrekt konfiguriert ist. Handelt es sich um eine reguläre WordPress-Website oder ist sie Teil einer Multisite-Installation? Möglicherweise gibt es ein Problem bei der Synchronisierung von Abmeldungen mit Websites, die nicht die Hauptseite im Netzwerk sind.

Bei der Betrachtung Ihrer Bildschirmaufnahme scheint Ihre Discourse-Website auf „Anmeldung erforderlich

Vielen Dank, Simon. Es handelt sich um eine einzelne WP-Site, und ein Cookie scheint plausibel. Ich werde mich also in diese Richtung auf den Weg machen.

Ich schätze den Rat!

brian driggs //// tgp

Wenn Sie eine Entwicklungsumgebung haben, deaktivieren Sie vorübergehend alle Plugins außer WP Discourse und prüfen Sie, ob das Problem weiterhin besteht. Falls Sie keine Entwicklungsumgebung haben, können Sie versuchen, die Plugins nur für Ihre Benutzersitzung mit dem Health Check-Plugin zu deaktivieren. Einzelheiten zur Verwendung dieses Plugins zum Deaktivieren von Plugins für eine Sitzung finden Sie hier: Troubleshooting using the Health Check – Make WordPress Support.

Boom. Ich habe keine Dev-Site, aber das Health-Check-Plugin hat hervorragend funktioniert – sogar auf Anhieb. Es sieht so aus, als würde ich mich nun mit MemberPress und dem auth_cookie befassen. Danke, Simon.

Hier sind die Schritte, die ich durchgeführt habe, falls jemand anderes sie braucht:

  1. Das Health-Check-Plugin installiert.
    – Die Site in den Troubleshooting-Modus versetzt.
    – Das WP-Discourse-Plugin aktiviert.
  2. Die Discourse-Site geöffnet.
    – Abgemeldet.
    – Auf die WP-Login-Seite weitergeleitet (das Login-Formular fehlte).
    – Konnte sich überhaupt nicht wieder bei Discourse anmelden. (Gewünschte Funktionalität.)
  3. MemberPress aktiviert.
    – (Mir wurde klar, dass die Login-Seite von MemberPress generierte Benutzername/Passwort-Felder verwendet.)
    – Das Login-Formular erschien erneut.
  4. Die Discourse-Site geöffnet – war bereits angemeldet.
  5. Abmeldung versucht, wurde in einer Schleife zurück zu Discourse weitergeleitet und war immer noch angemeldet.

Ich nutze WP seit 2007 und habe bis jetzt noch nie von diesem Plugin gehört. Nochmals vielen Dank, Simon!

Ja, es ist sehr nützlich zur Fehlerbehebung.

Ich würde gerne prüfen, was bei MemberPress los ist, aber es ist ein kostenpflichtiges Plugin. Laut ihrer Dokumentation scheint es eine MemberPress-URL für die Weiterleitung nach dem Abmelden zu geben, die auf der Optionsseite des Plugins eingestellt werden kann. Das Problem könnte mit dieser Einstellung zusammenhängen.

Wie kann ich helfen?

Ich habe die Einstellung für die Weiterleitung nach der Abmeldung bemerkt und einige Ziele festgelegt, aber es scheint keine Wirkung zu haben.

Ich versuche herauszufinden, wie man Discourse von einer externen Seite aus abmelden kann. Ich habe versucht, Dokumentation zu finden, und es scheint, dass dies durch eine API-POST-Anfrage erfolgt, wie in diesem Beitrag erwähnt.

Das Problem ist, dass ich nicht wirklich verstehe, wie man die API-Anfrage stellt, und ich weiß nicht, wie es weitergehen soll. Ich habe Postman heruntergeladen und versuche, dort zu experimentieren, aber ich habe Schwierigkeiten. Ich bin mir nicht sicher, wie ich die benötigte API-Anfrage erstellen soll, und ich weiß auch nicht, wie ich sie später auf der externen Seite implementieren würde.

Habt ihr irgendwelche Vorschläge, wie man dieses Problem lösen kann?

Wenn du einige Details zu deiner externen Seite nennen kannst, kann dir hier vielleicht jemand helfen.

Die Website ist eine WordPress-Seite mit Memberpress und fungiert als SSO-Anbieter für mein Discourse-Forum. Nach dem Abmelden auf WordPress kann ich sie auf eine URL umleiten, die ich gerne auch zum gleichzeitigen Abmelden von Discourse nutzen würde. Oder kann ich stattdessen über eine PHP-Funktion, die ich in die functions.php einfügen könnte, eine API-Anfrage senden?

Verwendest du das WP Discourse-Plugin für SSO? Wenn ja, sollte sich die Abmeldung von WordPress automatisch auch von Discourse abmelden. Es gibt jedoch einen aktuellen Bericht, wonach dies nicht funktioniert, wenn das Memberpress-Plugin auf WordPress verwendet wird: SSO: Unable to logout. Stößt du auf dasselbe Problem?

Ja, ich verwende dieses Plugin, und es scheint das gleiche Problem zu sein.

Super! Ich werde versuchen, das morgen zu beheben.

Weil du der Mann bist. Danke, Simon. :slight_smile:

Das wäre sehr hilfreich! Falls du noch weitere Informationen von mir benötigst, lass es mich einfach wissen. Danke!

Ich habe einige Schwierigkeiten, das Problem nachzuvollziehen. Wenn ich auf einer Ihrer WordPress-Websites ein Konto erstellen könnte, wäre ich vielleicht in der Lage zu sehen, was los ist. Ich benötige keinen Admin-Zugriff. Falls dies möglich ist, senden Sie mir bitte eine PN mit den Details zur Website.

@simon Ich habe dir gerade ein Mitgliedskonto eingerichtet. Du solltest eine E-Mail erhalten haben, um ein Passwort festzulegen. Lass mich wissen, ob es geklappt hat. Vielen Dank im Voraus.

Ich habe auch ein Konto auf meiner Seite erstellt und dir die Details per PN geschickt.

@TGP Könntest du versuchen, deine Discourse-Einstellung für logout redirect auf https://www.thegearheadproject.com/?request=logout zu ändern? Es scheint, als würden Anfragen ohne www auf die www-URL umgeleitet, aber der Abfrageparameter request=logout dabei nicht beibehalten.

Dies löst das Problem möglicherweise nicht, aber es wäre gut, diese Ursache auszuschließen.

Es scheint wahrscheinlich, dass die Abmeldungsprobleme auf diesen Seiten nicht zusammenhängen.

@robtech: Wenn ich mich von deiner Discourse-Seite abmelde, werde ich auch von deiner WordPress-Seite abgemeldet, sodass dieser Teil des Abmeldevorgangs auf deiner Seite korrekt zu funktionieren scheint. Das Problem, das ich feststelle, liegt bei der Synchronisierung der Abmeldungen von WordPress nach Discourse. Die Abmeldung von deiner WordPress-Seite führt nicht dazu, dass ich von deiner Discourse-Seite abgemeldet werde.

Kannst du bitte sicherstellen, dass der API-Schlüssel und der Veröffentlichungsbenutzername, die du im Reiter „WP Discourse Connection