ドロップダウンメニューからログアウトした際にログアウトイベントを受信しませんでしたが、APIを使用してログアウトした際にはイベントを受信しました。すべてのイベントを受信するようにフックを設定しました。
「いいね!」 1
Ok、ソースコードを確認したところ、以下のことがわかりました(RubyとEmber.jsは初心者なので、間違いがあればご容赦ください)。
ユーザーのドロップダウンメニュー(quick-access-profile.js)にある「ログアウト」ボタンは、ajax(/session/${this.username}, { type: "DELETE" }) を呼び出します。これは、session_controller.rb の「destroy」アクションに対応します。
このアクションは「user_logged_out」イベントをトリガーしないことがわかりました。そのため、DiscourseEvent.trigger(:user_logged_out, current_user) の行を「destroy」アクションに追加すると、「user_logged_out」Webhook がトリガーされました。
これは session_controller.rb の「destroy」アクションのバグでしょうか、それとも「user_logged_out」イベントをトリガーしないことが期待されているのでしょうか?
Discourse を SSO プロバイダーとして使用しており、「user_logged_out」Webhook を使用して、Discourse でログアウトしたときに私のウェブサイトのユーザーもログアウトさせようとしています。
「いいね!」 1