Füge Links zu Discourse hinzu, die es Benutzern ermöglichen, sich über SSO zu authentifizieren oder direkt auf private Gruppen zuzugreifen, wenn sie bereits angemeldet sind

Ich habe eine WordPress-Site, die als SSO-Anbieter für Discourse über das WPDiscourse-Plugin fungiert. Das Forum ist öffentlich, hat aber einige private Gruppen.

Wenn ich Schaltflächen hinzufügen möchte, die Benutzer von meiner WordPress-Site zu einer privaten Gruppe in Discourse weiterleiten, verwende ich die SSO-URL, wie hier erwähnt, damit Benutzer nicht auf der Seite „Hoppla! Diese Seite existiert nicht oder ist privat.“ landen.

Aber wenn Benutzer sich bereits über SSO in Discourse authentifiziert haben und zurückkehren und dieselben Schaltflächen anklicken, gelangen sie erneut zur Anmeldeseite, auch wenn sie während des Anmeldevorgangs das Kontrollkästchen „Angemeldet bleiben“ ausgewählt haben. Idealerweise sollten sie nach der Authentifizierung in Discourse SSO frei zu den privaten Gruppen navigieren können.

Gibt es eine bessere Möglichkeit, dies einzurichten?
Ich habe darüber nachgedacht, Code zur WP-Anmeldeseite hinzuzufügen und zu überprüfen, ob der Benutzer sich bereits in Discourse angemeldet hat. Wenn ja, sollte er zu der Seite im Argument „return_path“ in der URL weitergeleitet werden. Wäre das die Umgehungslösung? Wenn ja, welche Funktionen oder API-Aufrufe könnte ich verwenden, um dies zu erreichen?

Vielen Dank!

1 „Gefällt mir“

Wenn die Benutzer bereits auf Ihrer WordPress-Website angemeldet sind, sollte dies nicht passieren. Können Sie klarstellen, ob die Benutzer, bei denen dies geschieht, bei WordPress angemeldet sind? Wenn sie angemeldet sind, wird erwartet, dass sie lautlos zu der Discourse-URL weitergeleitet werden, die Sie im Argument return_path festgelegt haben.

3 „Gefällt mir“

Hallo @rodrigo.braga :slight_smile:

Ich bin auch ein wenig verwirrt. Könnten Sie bitte Folgendes bestätigen:

Einrichtung

WordPress ist gemäß den Anweisungen hier als DiscourseConnect-Anbieter für Discourse eingerichtet:

Szenario 1

  1. Ein Benutzer befindet sich auf Ihrer WordPress-Website und ist nicht bei WordPress angemeldet.
  2. Der Benutzer klickt auf einen Link auf WordPress im Format https://discourse.example.com/session/sso?return_path=/g/private_group
  3. Der Benutzer wird aufgefordert, sich bei WordPress anzumelden.
  4. Der Benutzer meldet sich bei WordPress an.
  5. Der Benutzer wird zu https://discourse.example.com/g/private_group weitergeleitet.
  6. Der Benutzer sieht private_group, da er jetzt über DiscourseConnect bei Discourse angemeldet ist und Mitglied von private_group ist.

Ist das derzeit der Fall?

Szenario 2

  1. Ein Benutzer befindet sich auf Ihrer WordPress-Website und ist bei WordPress angemeldet.
  2. Der Benutzer klickt auf einen Link auf WordPress im Format https://discourse.example.com/session/sso?return_path=/g/private_group
  3. Der Benutzer wird aufgefordert, sich bei WordPress anzumelden.

Ist das derzeit der Fall?

3 „Gefällt mir“

Danke Simon, ja, der Benutzer ist in WordPress eingeloggt.

Das Seltsame in meinem Szenario ist, dass ich eine Haupt-WP-Seite (WPSite1) habe, die der DiscourseConnect-Provider für Discourse ist und WP Discourse verwendet.

Dann habe ich eine zweite WP-Seite (WPSite2), die die Benutzerdatenbank mit WPSite1 über das WP Remote User Synch Plugin synchronisiert.

Ich weiß nicht, warum das das von Ihnen erwähnte erwartete Verhalten beeinträchtigen sollte, denn wenn ich mich auf WPSite2 einlogge und dann zu WPSite1 navigiere, bin ich auch auf WPSite1 eingeloggt.

Aber was passiert ist, dass ich, selbst nachdem ich mich auf WPSite1, dem DiscourseConnect-Provider, eingeloggt habe, und auf eine URL wie https://discourse.example.com/session/sso?return_path=/g/private_group klicke, zum SSO-WP-Login-Formular weitergeleitet werde.

1 „Gefällt mir“

Danke, Angus,

Szenario 2 trifft zu.
Ich werde die Anweisungen überprüfen, aber ich glaube, alles ist korrekt eingerichtet, da die SSO-Anmeldung funktioniert. Das Problem ist, dass die Anmeldeseite nicht erkennt, dass der Benutzer bereits authentifiziert ist.

1 „Gefällt mir“

Hallo @simon und @angus, danke nochmals, ich habe gefunden, was falsch war.

Bei der Überprüfung der DiscourseConnect-Konfiguration fiel mir auf, dass die DiscourseConnect-URL auf https://mydomain.org gesetzt war, und ich habe mir die Empfehlungen im Discourse WP-Plugin angesehen, und dort stand, dass https://www.mydomain.org verwendet werden soll… Als ich mit www aktualisiert habe, funktionierte es wie erwartet.

Danke.

2 „Gefällt mir“

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.