web-dev-qa-db-fra.com

Comment se déconnecter partout ailleurs, détruire toutes les sessions "tous les autres appareils"?

Le service de panneau WordPress "Déconnectez-vous partout ailleurs" fait un travail agréable. Je veux utiliser cela comme une fonction en dehors du panneau.

Capture d'écran

 enter image description here 

3
lllllllllllll

Ce bouton envoie une demande AJAX qui exécute wp_ajax_destroy_sessions() .

Ce n'est pas vraiment abstrait en sorte que vous pouvez le réutiliser en dehors d'AJAX, mais si vous copiez le source dans votre propre fonction, moins les parties JSON, vous pourrez alors exécuter la même action vous-même.

La partie clé est ce bit, qui détruira toutes les sessions pour un ID utilisateur donné:

$sessions = WP_Session_Tokens::get_instance( $user_id );
$sessions->destroy_all();

Le reste de la fonction vérifie simplement que l'utilisateur existe, vérifie les autorisations et envoie une réponse JSON. Ils pourraient ne pas être pertinents pour votre cas d'utilisation, donc ce qui précède pourrait suffire.

3
Jacob Peattie