Fehler bei der Autorisierung Ihres Kontos mit Patreon

Hallo,

ich benutze das Discourse Patreon Plugin und bin auf ein Problem gestoßen. Die Integration funktioniert perfekt für Benutzer, die dieselbe E-Mail-Adresse sowohl bei Discourse als auch bei Patreon haben – sie können ihre Konten verknüpfen und erhalten die richtige Gruppe/die richtigen Vorteile.

Bei Benutzern, die eine andere E-Mail-Adresse bei Patreon und Discourse haben, erhalten sie jedoch nach der Autorisierung bei Patreon diese Fehlermeldung, wenn sie versuchen, ihr Patreon-Konto über die Schaltfläche „Verbinden“ in ihrem Discourse-Profil zu verknüpfen:

Entschuldigung, es gab einen Fehler bei der Autorisierung Ihres Kontos mit Patreon. Bitte versuchen Sie es erneut.

Dies geschieht unabhängig vom Gerät oder Browser.

Wichtig: Das Plugin funktioniert ansonsten – Benutzer mit übereinstimmenden E-Mail-Adressen werden zugeordnet und erhalten ihre Vorteile, sodass Client-ID, Secret und Redirect-URI alle korrekt eingerichtet sind.

Was ich versucht habe:

  • Manuelle Gruppenzuweisung (wird durch Synchronisierung entfernt)
  • Erneutes Überprüfen aller Plugin- und Patreon-App-Einstellungen
  • Testen auf mehreren Geräten und Browsern

Gibt es eine Möglichkeit, Benutzern mit unterschiedlichen E-Mail-Adressen zu erlauben, ihr Patreon-Konto mit ihrem bestehenden Discourse-Konto zu verknüpfen oder zumindest diesen Fehler zu vermeiden?

Jeder Rat oder jede Best Practice wäre sehr willkommen!

Danke!


2 „Gefällt mir“

Schon seit langem verwenden wir das Patreon-Plugin mit API V1 für Discourse, um uns mit Patreon anzumelden. Dies ist die empfohlene Einrichtung gemäß der offiziellen Dokumentation des Discourse-Patreon-Plugins: https://meta.discourse.org/t/configure-patreon-integration-with-discourse/62380

Screenshot 2025-10-28 at 11.59.15 AM

Patreon unterstützt V1 jedoch seit Jahren nicht mehr. Es funktioniert ständig nicht, es synchronisiert nicht vollständig und kürzlich hat es für uns einfach nicht mehr funktioniert.

Das Problem ist, dass es beim Wechsel zu API V2, das von Patreon unterstützt wird, fehlschlägt, Benutzer zu autorisieren. Wenn Benutzer versuchen, auf “Mit Patreon anmelden” zu klicken und API v2 die Verbindung zu ihrem Patreon-Konto erlauben, erhalten sie diese Fehlermeldung:

Entschuldigung, es gab einen Fehler bei der Autorisierung Ihres Kontos bei Patreon. Bitte versuchen Sie es erneut.

Und gemäß der offiziellen Dokumentation des Patreon-Plugin-Discourse heißt es ausdrücklich, dass API v2 diese Authentifizierungsfehler verursachen kann. Was v2 unbrauchbar macht.

Screenshot 2025-10-28 at 12.05.06 PM

Glücklicherweise haben wir eine Lösung gefunden, um API v2 zum Laufen zu bringen. Diese Lösung sollte zur offiziellen Dokumentation hinzugefügt werden, da derzeit API v1, was empfohlen wird, vollständig defekt ist.

Lösung

Die Lösung besteht darin, ein benutzerdefiniertes OAuth2 zu erstellen. Anstatt dass Benutzer die Schaltfläche “Mit Patreon anmelden” des Patreon-Plugins verwenden, verwenden sie eine von uns erstellte benutzerdefinierte Anmeldeschaltfläche, die sich mit Patreon über unser eigenes OAuth authentifiziert.

Schritt 1: Fügen Sie diese Redirect-URIs zu Patreon hinzu.

  • https://<dein_discourse_server_link>/auth/oauth2_basic/callback

  • https://<dein_discourse_server_link>/auth/patreon/callback

Schritt 2: Gehen Sie in Discourse zu Admin > Anmelden & Authentifizierung > OAuth2 und konfigurieren Sie Folgendes:

  • oauth2_enabled: true

  • oauth2_client_id: <deine Patreon-Client-ID>

  • oauth2_client_secret: <dein Patreon-Client-Secret>

  • oauth2_authorize_url: https://www.patreon.com/oauth2/authorize

  • oauth2_authorize_signup_url: (leer lassen)

  • oauth2_token_url: https://www.patreon.com/api/oauth2/token

  • oauth2_callback_user_id_path: (leer lassen)

  • oauth2_callback_user_info_paths: email

  • oauth2_token_url_method: POST

  • oauth2_callback_user_info_paths: email

  • oauth2_fetch_user_details: true

  • oauth2_user_json_url: https://www.patreon.com/api/oauth2/v2/identity?include=memberships&fields[user]=email,full_name,vanity

  • oauth2_json_user_id_path: data.id

  • oauth2_json_name_path: data.attributes.full_name

  • oauth2_json_username_path: data.attributes.vanity

  • oauth2_json_email_path: data.attributes.email

  • oauth2_json_email_verified_path: (leer lassen)

  • oauth2_email_verified: true (Provider vertrauen, um Aufforderungen zu reduzieren) Wenn einige Patrons keine E-Mail haben, setzen Sie dies auf false und erwarten Sie eine Anmeldeaufforderung.

  • oauth2_email_verified: true

  • oauth2_send_auth_header: true

  • oauth2_send_auth_body: true

  • oauth2_debug_auth: true

  • oauth2_authorize_options: scope

  • oauth2_scope: identity identity[email] campaigns campaigns.members

  • oauth2_button_title: Mit Patreon anmelden

  • oauth2_allow_association_change: false (empfohlen)

Schritt 3: Konfigurieren Sie in den Kern-Login-Steuerelementen von Discourse Folgendes:

  • enable sso: false

  • patreon login enabled: false (verhindert zwei Patreon-Schaltflächen; Plugin nur für die Synchronisierung beibehalten)

  • allow new registrations: wählen Sie:

    • true, um neuen Patrons die Erstellung von Konten zu ermöglichen
    • false, um nur bestehenden Discourse-Benutzern die Anmeldung zu ermöglichen
  • invite only: false während des Testens

  • must approve users: false während des Testens

  • session_cookie_domain: (leer)

Schritt 4: Konfigurieren Sie in Ihrer Discourse-yml-Datei Folgendes für Netzwerk und Hosts.

  • DISCOURSE_HOSTNAME in app.yml: <dein_discourse_server_link>

  • force_https: true

Schritt 5: Bauen Sie Ihre App neu, um die Änderungen zu implementieren:

cd /var/discourse
./launcher rebuild app

Ergebnis:
Jetzt sollten Sie Ihre eigene funktionierende OAuth2-Anmeldeschaltfläche “Mit Patreon anmelden” haben, die tatsächlich mit API v2 funktioniert und Ihre Benutzergruppen ordnungsgemäß mit Patreon synchronisiert.

1 „Gefällt mir“

Gute Arbeit, @watson! Ich habe deine Lösung vorerst in dieses Thema verschoben und sie nach Feature verschoben, da es sich um eine Verbesserung/Korrektur der Funktionsweise des offiziellen Patreon-Plugins handelt. Wenn ein oder zwei andere deine Schritte nachvollziehen und bestätigen können, dass sie funktionieren, denke ich, dass die offiziellen Patreon-Anweisungen aktualisiert werden müssen.