WordPress est configuré ici comme fournisseur d’authentification unique (SSO) via le plugin WP-Discourse. Dans certains cas particuliers, nous devons déconnecter les utilisateurs pour garantir la cohérence de leur affectation aux groupes, etc.
Lorsqu’un utilisateur ne comprend pas de quoi nous parlons, nous procédons à la déconnexion de sa session via l’administration WordPress. Cela ne le déconnecte pas de Discourse, cependant.
Existe-t-il un moyen d’intégrer un signal de déconnexion Discourse dans WordPress via une fonction ou autre chose qui permettrait de réaliser cela ?
Savez-vous s’il existe une action WordPress qui est déclenchée lors de la déconnexion d’un utilisateur via l’administration WordPress ? Le plugin WP Discourse se connecte à l’action clear_auth_cookie pour synchroniser les déconnexions initiées par l’utilisateur entre WordPress et Discourse. Peut-être existe-t-il une autre action qui pourrait être utilisée à cette fin et qui fonctionnerait également lorsque l’utilisateur est déconnecté par un administrateur du site.
Je soupçonne qu’il utilise la fonction wp_ajax_destroy_sessions et effectue une sorte de manipulation de jetons de session dans $sessions->destroy_all();. Comment accrocher clear_auth_cookie à cette fonction ?
J’ai jeté un coup d’œil rapide au code de WordPress et je ne vois pas de moyen évident de faire fonctionner cela. Si ce n’est pas une action que vous effectuez très souvent, les administrateurs de Discourse peuvent déconnecter les utilisateurs de Discourse en cliquant sur le bouton « Se déconnecter » affiché près du haut de la page d’administration de l’utilisateur. Pour obliger les utilisateurs à se reconnecter via SSO, vous pouvez déconnecter manuellement l’utilisateur de Discourse, puis le déconnecter de WordPress.