Ich habe einen Hook eingerichtet, um alle Ereignisse zu empfangen, aber ich habe das Logout-Ereignis nicht erhalten, als ich mich über das Dropdown-Menü abgemeldet habe. Das Ereignis wurde jedoch empfangen, als ich mich über die API abgemeldet habe.
Ok, nachdem ich mir den Quellcode angesehen habe, habe ich Folgendes gefunden (ich bin neu in Ruby und Ember.js, also bitte entschuldigt etwaige Fehler):
Der „Logout“-Button im Dropdown-Menü des Benutzers (quick-access-profile.js) ruft auf: ajax(/session/${this.username}, { type: "DELETE" }), was der „destroy“-Aktion in session_controller.rb entspricht.
Ich habe festgestellt, dass diese Aktion das Ereignis „user_logged_out“ nicht auslöst. Nachdem ich also die folgende Zeile hinzugefügt habe:
DiscourseEvent.trigger(:user_logged_out, current_user) zur „destroy“-Aktion, wurde der „user_logged_out“-Webhook ausgelöst.
Ist dies ein Fehler in der „destroy“-Aktion von session_controller.rb, oder ist es zu erwarten, dass das Ereignis „user_logged_out“ nicht ausgelöst wird?
Ich verwende Discourse als SSO-Anbieter und versuche, den „user_logged_out“-Webhook zu verwenden, um Benutzer auf meiner Website abzumelden, wenn sie sich von Discourse abmelden.