WordPress está configurado aquí como proveedor de SSO mediante el plugin WP-Discourse y, en ciertos casos extremos, debemos cerrar la sesión de los usuarios para garantizar la coherencia entre su asignación de grupos, etc.
Cuando un usuario no entiende de qué estamos hablando, optamos por cerrar su sesión a través de la administración de WordPress. Esto no cierra su sesión en Discourse, sin embargo.
¿Existe alguna manera de conectar una señal de cierre de sesión de Discourse en WordPress mediante una función o algo similar que pueda hacer esto posible?
¿Sabes si hay una acción de WordPress que se ejecute cuando cierras la sesión de un usuario desde la administración de WordPress? El plugin WP Discourse se conecta a la acción clear_auth_cookie para sincronizar los cierres de sesión iniciados por el usuario entre WordPress y Discourse. Quizás exista otra acción que pueda utilizarse para esto y que también funcione cuando el usuario es desconectado por un administrador del sitio.
Sospecho que está utilizando la función wp_ajax_destroy_sessions y realizando alguna magia con los tokens de sesión en $sessions->destroy_all();. ¿Cómo se puede enganchar clear_auth_cookie en esta función?
Creo que esa es la función que se está utilizando.
Revisé rápidamente el código de WordPress y no veo una forma obvia de hacer que esto funcione. Si esta no es una acción que realices con mucha frecuencia, los administradores de Discourse pueden cerrar la sesión de los usuarios en Discourse haciendo clic en el botón “Cerrar sesión” que se muestra cerca de la parte superior de la página de administración del usuario. Para obligar a los usuarios a volver a iniciar sesión mediante SSO, puedes cerrar manualmente la sesión del usuario en Discourse y luego cerrar su sesión en WordPress.