Nach diesem habe ich SSO mit JWT erfolgreich eingerichtet.
Bei der Nutzung der discourse-omniauth-jwt-Bibliothek bin ich mir jedoch unsicher, wie ich Benutzer nach der Anmeldung weiterleiten kann.
Wenn sich ein Benutzer auf meiner Seite anmeldet, erhalte ich das JWT und melde ihn sofort auch bei Discourse an. Am Ende dieses Ablaufs landet er jedoch auf der Discourse-Website und nicht zurück auf meiner Seite.
Ich habe versucht, die Weiterleitungsmethoden der omniauth-Bibliothek zu prüfen, die den origin-Parameter und das destination_url-Cookie enthalten, wie hier beschrieben. Keine dieser Methoden scheint zu funktionieren.
Vielleicht kann @eviltrout hier etwas Licht ins Dunkel bringen.
EDIT: Mir ist gerade aufgefallen, dass ich mir zwei verschiedene Bibliotheken angesehen habe: omniauth und die omniauth-Callbacks von Discourse. Trotzdem bin ich mir immer noch unsicher, wie ich das zum Laufen bekomme.
I don’t think this is a supported path. In general, a user would be on discourse, click login, visit your site for auth and be redirected back. If a user logs in directly on your site, they should stay on your site.
Typically how we do this is keep Discourse logged out, but when they click “Login” it’ll redirect back without having to fill out the authentication form again.
So, the embeds do make use of the auth session (or the session cookie) to show or hide private discourse topics.
This auth flow does make sense, but for starters, I’m going to redirect people to the discourse forum for login on a new tab. They will be able to access private topics after a refresh.