SSO-Weiterleitungsprobleme

Ich integriere Discourse mit Wordpress über das WP Discourse-Plugin und verwende Wordpress als Discourse Connect-Anbieter. Dabei stoße ich jedoch auf ein Problem, bei dem ein nicht authentifizierter Benutzer, der die Discourse-Instanz besucht und auf eine Schaltfläche klickt, die eine Anmeldung erfordert, in einer Endlosschleife von Weiterleitungen stecken bleibt.

Das gewünschte Verhalten ist: Benutzer klickt auf die Discourse-Anmeldeschaltfläche → Benutzer wird zur Wordpress-Anmeldeseite weitergeleitet → Benutzer authentifiziert sich und wird zur vorherigen Discourse-Seite zurückgeleitet. Derzeit gibt es keine Probleme, wenn ein Benutzer bereits authentifiziert ist und die Discourse-Instanz nach der Authentifizierung besucht. Dieser Fehler tritt auf, wenn zuerst ein nicht authentifizierter Benutzer die Discourse-Instanz besucht.

Das aktuelle Verhalten ist: Benutzer klickt auf eine Discourse-Anmeldeschaltfläche Benutzer wird weitergeleitet zu https://[discourse-instance]/session/sso?return_path=%2Ft%2F[discourse page user was on before]%2F16 Benutzer wird weitergeleitet zu https://[wordpress-site]/?sso=[SSO token]%3D%3D&sig=[Signature token] Benutzer wird weitergeleitet zu https://[wordpress-site]/?sso=[SSO token]%3D%3D&sig=[Signature token]&redirect_to=%2F%3Fsso%[SSO token]%253D%253D%26sig%3D[Signature token] und der Zyklus wiederholt sich, bis der Browser eine Fehlermeldung “zu viele Weiterleitungen” ausgibt.

Ich konnte keinen Thread mit einer Lösung für dieses Problem finden. Der nächstgelegene ist

aber wir haben überall SSL aktiviert und dieses Problem tritt in allen Browsern auf. Irgendwelche Vorschläge zur Behebung dieses Problems?

Chrome 97 wurde mit einem Fehler bei der Cookie-Behandlung während Weiterleitungen ausgeliefert, der unter bestimmten Umständen bekanntermaßen DiscourseConnect beeinträchtigt. Während wir auf die Veröffentlichung eines Fixes durch Google warten, haben wir eine Problemumgehung in Discourse hinzugefügt. Ein Upgrade Ihrer Discourse-Site auf die neueste Version sollte das Problem beheben. Können Sie das ausprobieren und uns mitteilen, ob es funktioniert?

(Die Problemumgehung wurde in diesem Commit hinzugefügt)

3 „Gefällt mir“

Vielen Dank für die Antwort. Ich habe gerade überprüft, ob wir die neueste Version haben, aber leider besteht der Fehler immer noch. Wir hosten unser Forum bei Discourse, daher sollte es sich regelmäßig selbst aktualisieren. Der Fehler ist immer noch derselbe wie zuvor. Gibt es noch etwas anderes, das ich versuchen sollte? Könnten Einstellungen innerhalb des Discourse-Hostings dies verursachen?

1 „Gefällt mir“

Hallo @dbwhite, könntest du bitte

  1. „Verbose DiscourseConnect Logs“ in den WP DiscourseDiscourseConnect“-Einstellungen aktivieren
  2. das Problem erneut reproduzieren
  3. zu „Logs“ in WP Discourse gehen und sie herunterladen

Sende mir dann die Logs per PN und ich werde mir genauer ansehen, was passiert. Beachte, dass die Logs keine persönlich identifizierbaren Informationen oder Geheimnisse enthalten.

2 „Gefällt mir“

@angus, @dbwhite Ein möglicher Grund für das Problem könnte sein, wenn die WordPress-Website WooCommerce verwendet. WooCommerce fügt eine Login-Umleitung hinzu, die Probleme mit DiscourseConnect verursachen kann. Diese Umleitungen können entweder durch die Installation und Aktivierung von GitHub - scossar/wp-discourse-woocommerce-support: Integrates the wp-discourse plugin with WooCommerce oder durch Hinzufügen der Code-Schnipsel, die in der Readme dieses Plugins angegeben sind, zum Theme der Website überschrieben werden.

Das hier beschriebene Umleitungsproblem scheint dem zu ähneln, was ich in der Vergangenheit bei anderen WooCommerce-Websites gesehen habe. In diesen Fällen wurde es durch die Installation des von mir verlinkten WordPress-Plugins behoben.

Wenn dies die Ursache des Problems ist, frage ich mich, ob wir die WooCommerce-Unterstützung direkt in das WP Discourse-Plugin integrieren sollten.

4 „Gefällt mir“

Das wäre äußerst hilfreich.

Ich habe nicht genau das Problem, das der Ersteller des Beitrags beschrieben hat, aber ich stoße auf eine Wand, wenn ich unsere Benutzer nach der Anmeldung zurück zu dem Ort leite, an dem sie sich im Discourse-Forum befanden :disappointed_face:

Löst die Installation und Aktivierung des WP Discourse WooCommerce Support-Plugins das Problem für Sie?

Ich wollte hier nur ein Update posten. Es stellte sich heraus, dass eines der von uns verwendeten Plugins den Rückgabewert der Wordpress-Funktion wp_login_url() beeinträchtigte. Nachdem dieses Plugin entfernt wurde, funktionierte alles wie erwartet!

1 „Gefällt mir“

Ein Beitrag wurde in ein neues Thema aufgeteilt: Rails-Fehler bei Verwendung von DiscourseConnect und Wordpress