WordPress disconnetti ovunque non disconnette Discourse

WordPress è configurato qui come provider SSO tramite il plugin WP-Discourse e, in alcuni casi limite, dobbiamo disconnettere gli utenti per garantire la coerenza tra l’assegnazione ai gruppi e altro.

Quando un utente non riesce a capire di cosa stiamo parlando, seguiamo la procedura di disconnessione della sessione tramite l’amministratore di WordPress. Questo però non li disconnette da Discourse.

Esiste un modo per collegare un segnale di disconnessione di Discourse a WordPress tramite una funzione o qualcosa di simile che possa rendere possibile questo?

Sai se esiste un’azione di WordPress che viene chiamata quando si disconnette l’utente tramite l’amministrazione di WordPress? Il plugin WP Discourse si aggancia all’azione clear_auth_cookie per sincronizzare le disconnessioni avviate dall’utente tra WordPress e Discourse. Forse esiste un’altra azione che potrebbe essere utilizzata per questo e che funzionerebbe anche quando l’utente viene disconnesso da un amministratore del sito.

Farò un po’ di ricerche su questo e ti ricontatterò.

Sospetto che stia usando la funzione wp_ajax_destroy_sessions e stia eseguendo qualche magia con i token di sessione in $sessions->destroy_all();. Come si aggancia clear_auth_cookie a questa funzione?

Credo che sia proprio la funzione che viene utilizzata.

Ho dato un’occhiata veloce al codice di WordPress e non vedo un modo ovvio per far funzionare questa cosa. Se non si tratta di un’azione che esegui molto frequentemente, gli amministratori di Discourse possono disconnettere gli utenti da Discourse cliccando sul pulsante “Disconnetti” visualizzato vicino alla parte superiore della pagina amministrativa dell’utente. Per forzare gli utenti a effettuare nuovamente il login tramite SSO, puoi disconnettere manualmente l’utente da Discourse e poi disconnetterlo da WordPress.

Ci provo, potrei riprendere questo argomento tra un paio di mesi se questa strategia va a monte.