Discourse Connect Fluss

Wir möchten eine Community über die Discourse-APIs aufbauen. Wir haben ein Problem mit dem Ablauf.

Unser Frontend ist eine React-App und das Backend basiert auf NodeJS mit einer MS-Architektur. Wir verwalten den gesamten Authentifizierungsablauf auf unserer Seite.

Nach meinem Verständnis von Discourse Connect gilt:

  1. FE erstellt die Nutzlast mit einem Nonce, Benutzerinformationen und ruft dann example.com/session/SSO ?sso=xx&sig=xx auf.

  2. Discourse ruft dann die discourse_connect_url zurück, wo ich die Nutzlast validiere und dann die Weiterleitungs-URL zurückgebe, und die Benutzer werden zu Discourse weitergeleitet.

Wenn ich jedoch die Nutzlast mit Benutzerinformationen erstelle, kann ich diese nicht von meinem Frontend an Discourse und dann an das Backend weitergeben. Kann mir jemand helfen oder ist mein Verständnis richtig? Ich habe das Forum auch mit erwarteten Lösungen durchsucht, aber ohne Erfolg.

Beachten Sie, dass ich Benutzer bei Discourse anmelden kann, wenn ich Benutzerinformationen vom Backend hartcodiere.

Ich möchte, dass unsere Website der Authentifizierungsanbieter für Discourse ist und Benutzerinformationen vom Frontend an das Backend weitergibt. Kann mir jemand mit dem Ablauf oder vielleicht einigen Beispielen für JavaScript helfen?

1 „Gefällt mir“

Hallo Ankit,
Der Ablauf ist genau umgekehrt zu dem, was Sie beschrieben haben. Wenn Sie Discourse Connect auf Ihrer Website einrichten:

  1. Wenn Sie auf die Anmeldeschaltfläche klicken, werden Sie zu discourse_connect_url mit 2 GET-Parametern sso und sig weitergeleitet.
  2. Der Benutzer gibt seine Anmeldedaten auf der discourse_connect_url ein und wird von Ihrer Website authentifiziert. Wenn die Authentifizierung erfolgreich ist, müssen Sie die SSO dekodieren und die weiteren Schritte wie im Discourse Connect-Thema beschrieben ausführen.

Ich habe ein ähnliches Flow-Problem. Ich möchte nicht, dass mein Benutzer auf Discourse zugreift und auf Login klickt. Ich möchte, dass mein Benutzer auf meine Plattform zugreift und auf die Schaltfläche “Discourse zugreifen” klickt und transparent auf Discourse zugreift.

Ist es möglich, dass meine Plattform auf sichere Weise einen “Nonce” für meinen Benutzer über eine API generiert, ohne dass er sich vorher bei Discourse anmelden und auf Login klicken muss?

Hinweis: Ich kann dies selbst tun, indem ich auf Discourse zugreife und auf die Schaltfläche für sie klicke, ohne dass sie es wissen, aber dies ist nicht sicher für die Anwendung.

Die einfachste Option ist, dass die Schaltfläche „Auf Discourse zugreifen“ ein Link zu /login im Forum ist.