Я настроил хук для получения всех событий, но не получил событие выхода при выходе через выпадающее меню. Однако событие было получено при выходе через API.
Хорошо, после изучения исходного кода я обнаружил следующее (я новичок в Ruby и Ember.js, так что прошу простить возможные ошибки):
Кнопка «Выйти» в выпадающем меню пользователя (quick-access-profile.js) вызывает: ajax(/session/${this.username}, { type: "DELETE" }), что соответствует действию «destroy» в session_controller.rb.
Я выяснил, что это действие не вызывает событие «user_logged_out». Поэтому после добавления следующей строки:
DiscourseEvent.trigger(:user_logged_out, current_user) в действие «destroy», сработал вебхук «user_logged_out».
Является ли это ошибкой в действии «destroy» в session_controller.rb, или ожидается, что событие «user_logged_out» не будет вызываться?
Я использую Discourse как провайдера SSO и пытаюсь использовать вебхук «user_logged_out» для выхода пользователей с моего сайта, когда они выходят из Discourse.