Configurei um hook para receber todos os eventos, mas não recebi o evento de logout quando saí do menu suspenso. No entanto, recebi o evento ao sair usando a API.
Ok, depois de olhar o código-fonte, encontrei o seguinte (sou novo em Ruby e Ember.js, então me perdoem por quaisquer erros):
O botão “logout” no menu suspenso do usuário (quick-access-profile.js) chama: ajax(/session/${this.username}, { type: "DELETE" }) que corresponde à ação “destroy” em session_controller.rb.
Descobri que essa ação não dispara o evento “user_logged_out”. Então, depois de adicionar a seguinte linha:
DiscourseEvent.trigger(:user_logged_out, current_user) à ação “destroy”, o webhook “user_logged_out” foi disparado.
Isso é um bug na ação “destroy” de session_controller.rb, ou é esperado que não dispare o evento “user_logged_out”?
Estou usando o discourse como provedor de SSO e tentando usar o webhook “user_logged_out” para deslogar usuários em meu site quando eles deslogam no discourse.