Здесь WordPress настроен как провайдер единого входа (SSO) с помощью плагина WP-Discourse. В некоторых пограничных случаях нам приходится разлогинивать пользователей, чтобы обеспечить согласованность их назначений в группы и т. д.
Когда пользователь не понимает, о чём идёт речь, мы разлогиниваем его сеанс через админ-панель WordPress. Однако это не разлогинивает его в Discourse.
Есть ли способ подключить сигнал разлогинивания из Discourse в WordPress через функцию или что-то подобное, чтобы это стало возможным?
Не знаете, есть ли в WordPress действие, которое вызывается при разлогинивании пользователя через админ-панель WordPress? Плагин WP Discourse подключается к действию clear_auth_cookie, чтобы синхронизировать разлогинивание, инициированное пользователем, между WordPress и Discourse. Возможно, существует другое действие, которое можно использовать для этого и которое будет работать даже тогда, когда пользователь разлогинен администратором сайта.
Я подозреваю, что используется функция wp_ajax_destroy_sessions и выполняется какая-то магия с токенами сессии в $sessions->destroy_all();. Как подключить clear_auth_cookie к этой функции?
Я быстро просмотрел код WordPress и не нашёл очевидного способа заставить это работать. Если это действие выполняется вами нечасто, администраторы Discourse могут разлогинить пользователей в Discourse, нажав кнопку «Выйти», которая отображается в верхней части страницы администратора пользователя. Чтобы заставить пользователей снова войти через SSO, вы можете вручную разлогинить пользователя в Discourse, а затем разлогинить его в WordPress.