O WordPress está configurado aqui como provedor de SSO por meio do plugin WP-Discourse e, em certos casos extremos, precisamos fazer o logout dos usuários para garantir a consistência entre a atribuição de grupos, etc.
Quando um usuário não consegue entender do que estamos falando, seguimos o caminho de encerrar a sessão dele pelo admin do WordPress. Isso não faz o logout dele no Discourse, no entanto.
Existe alguma maneira de conectar um sinal de logout do Discourse ao WordPress por meio de uma função ou algo assim que possa fazer isso acontecer?
Você sabe se existe uma ação do WordPress que é acionada quando você desconecta o usuário pelo admin do WordPress? O plugin WP Discourse se conecta à ação clear_auth_cookie para sincronizar as desconexões iniciadas pelo usuário entre o WordPress e o Discourse. Talvez exista outra ação que possa ser usada para isso e que também funcione quando o usuário é desconectado por um administrador do site.
Eu suspeito que esteja usando a função wp_ajax_destroy_sessions e fazendo algum truque com tokens de sessão em $sessions->destroy_all();. Como conectar clear_auth_cookie a essa função?
Acho que essa é a função que está sendo utilizada.
Dê uma olhada rápida no código do WordPress e não vejo uma maneira óbvia de fazer isso funcionar. Se essa não for uma ação que você realiza com muita frequência, os administradores do Discourse podem fazer logout dos usuários no Discourse clicando no botão “Logout” exibido perto do topo da página de administração do usuário. Para forçar os usuários a fazer login novamente via SSO, você pode fazer logout manual do usuário no Discourse e, em seguida, fazer logout dele no WordPress.