WordPress は WP-Discourse プラグインを介して SSO プロバイダーとして設定されていますが、特定の極端なケースでは、グループ割り当てなどの整合性を確保するためにユーザーをログアウトさせる必要があります。
ユーザーが何を言っているのか理解できない場合、WordPress 管理画面からセッションをログアウトさせる対応を取ります。ただし、これでは Discourse 側からはログアウトされません。
何か関数などを使って、WordPress から Discourse のログアウト信号を連携させ、これを可能にする方法はありますか?
simon
2
WordPress 管理画面でユーザーをログアウトさせた際に呼び出される WordPress アクションをご存じでしょうか?WP Discourse プラグインは、WordPress と Discourse 間でユーザーが開始したログアウトを同期するために、clear_auth_cookie アクションにフックしています。サイト管理者がユーザーをログアウトさせた場合にも機能する、別のアクションがあるかもしれません。
おそらく、wp_ajax_destroy_sessions 関数を使用し、$sessions->destroy_all(); でセッショントークンの特殊な処理を行っているのでしょう。この関数で clear_auth_cookie をフックするにはどうすればよいですか?
「いいね!」 1
simon
5
私もその関数が使われていると思います。
WordPress のコードをざっと確認しましたが、これを実現する明確な方法は見つかりませんでした。もしこの操作を頻繁に行うものでないなら、Discourse の管理者はユーザーの管理ページの上部に表示されている「ログアウト」ボタンをクリックすることで、Discourse 側からユーザーをログアウトさせることができます。SSO 経由での再ログインを強制するには、まず手動でユーザーを Discourse からログアウトさせ、その後 WordPress からもログアウトさせるとよいでしょう。
「いいね!」 3
試してみます。もしこの戦略が失敗したら、数ヶ月後にこのトピックを再び持ち上げるかもしれません。
「いいね!」 2