Wordpress SSO und Patreon-Login

Okay, ich habe einen Workaround gefunden, der das Problem mit dem Patreon-Login „löst“. Die Anweisungen findest du unten. :slight_smile:

Du benötigst:

  • Ein beliebiges Plugin, das einen Shortcode zum Anzeigen eines Login-Formulars bereitstellt (ich habe WooCommerce auf meiner Website installiert und verwende daher den Shortcode [woocommerce_my_account], der genau das für nicht eingeloggte Benutzer tut).
  • Das Members-Plugin, das die Shortcodes [members_logged_in] und [members_not_logged_in] bereitstellt, um Inhalte je nach Login-Status des Benutzers ein- oder auszublenden. Du kannst auch ein anderes Plugin mit ähnlicher Shortcode-Funktionalität verwenden.
  • Das Shortcode Redirect-Plugin.

Die Idee besteht darin, eine spezielle Seite zu erstellen, die für nicht eingeloggte Benutzer ein Login-Formular (und den Patreon-Login-Button) anzeigt. Ist der Benutzer bereits eingeloggt, soll er auf die URL https://community.morevnaproject.org/session/sso?return_path=%2F weitergeleitet werden.
(Offensichtlich möchtest du „community.morevnaproject.org“ durch deine eigene Domain ersetzen).

Meine spezielle Login-Seite hat folgenden Inhalt:

[members_not_logged_in]
   [woocommerce_my_account]
   [patreon_login_button]
[/members_not_logged_in]
[members_logged_in]
   [redirect url='https://community.morevnaproject.org/session/sso?return_path=%2F' sec='0']
[/members_logged_in]

(Du kannst es hier live sehen – Log In / Register — Morevna Project)

Anschließend musst du nur noch das WP-Discourse-Plugin so konfigurieren, dass es diese Seite für SSO verwendet –

Wenn ein Benutzer in Discourse auf die Schaltfläche „Anmelden“ klickt, wird er auf meine spezielle WordPress-Seite weitergeleitet. Da der Benutzer noch nicht eingeloggt ist, wird das Login-Formular angezeigt. Klickt der Benutzer auf die Schaltfläche „Mit Patreon anmelden“, wird er zur Autorisierung zu Patreon weitergeleitet. Nach erfolgreicher Autorisierung wird er zurück auf meine spezielle Seite geleitet. Da der Benutzer nun eingeloggt ist, wird der Shortcode „redirect“ aktiviert:

[redirect url='https://community.morevnaproject.org/session/sso?return_path=%2F' sec='0']

…und der Benutzer wird erfolgreich zurück zu den Discourse-Foren weitergeleitet.

Der Teil session/sso?return_path=%2F am Ende der URL ist erforderlich; andernfalls erkennt Discourse den Benutzer nach der Weiterleitung nicht als eingeloggt.

Das war’s! Ich hoffe, das hilft anderen Benutzern, die auf ihrer Website WordPress SSO mit Patreon-Login nutzen möchten. :slight_smile: