Wie kann ich auf meiner Website prüfen, ob der Benutzer bei meinem Discourse angemeldet ist?

Ich erstelle eine Desktop-Anwendung mit einem dazugehörigen Forum (natürlich mit Discourse) und einer Website.

Auf unserer Website möchte ich zusätzliche Informationen anzeigen, wenn der Website-Besucher auch im Forum angemeldet ist.

Ich habe herausgefunden, wie man sich von der Website oder der Desktop-Anwendung aus anmeldet (siehe dieser Beitrag), aber ich kann keine Möglichkeit finden, zu überprüfen, ob mein Website-Besucher angemeldet ist (und wenn ja, wer er ist), ohne ihn tatsächlich zur Anmeldung aufzufordern.

Gibt es eine Möglichkeit, dies zu tun, z. B. über die Discourse-API?

1 „Gefällt mir“

Ich glaube, Sie müssen die Benutzer-ID aus der SSO-Nutzlast abrufen und dann eine Discourse-API-Anfrage verwenden, um den Benutzernamen und den aktuellen Anmeldestatus zu ermitteln.

Wenn sich der Benutzer auf der Forum-Website anmeldet, wie kann ich dann später die SSO-Nutzlast abrufen? Ich weiß, wie ich sie bekomme, wenn ich die Anmeldung selbst initiiere (indem ich einen Link generiere {forum_url}/session/sso_provider?sso=... usw.), aber wenn der Benutzer die Anmeldung initiiert, dann habe ich keine Ahnung, wie ich die SSO-Nutzlast abrufen könnte.

Das sollte tatsächlich möglich sein, obwohl die genaue URL für die API-Anfrage in https://docs.discourse.org nicht dokumentiert zu sein scheint. Wie lautet die korrekte URL?

1 „Gefällt mir“

Ich bin mir nicht sicher, aber ich vermute, Sie müssen auf das user_auth_token aus den JSON-Daten der Nutzlast zugreifen? Nur eine Vermutung, um Ihnen Ideen zu geben. Vielleicht kann Ihnen jemand, der sich besser mit Discourse Connect SSO auskennt, helfen.