如何从其他任何地方注销,销毁所有其他设备的所有会话?

时间:2018-04-09 作者:lllllllllllll

WordPress面板服务“在其他地方注销”做得很好。我想在面板外使用这个函数。

Screenshoot

enter image description here

2 个回复
最合适的回答,由SO网友:Jacob Peattie 整理而成

该按钮发送运行的AJAX请求wp_ajax_destroy_sessions().

它并不是以这样一种方式抽象出来的,即您可以在AJAX之外重用它,但是如果您将源代码复制到自己的函数中,减去JSON部分,那么您可以自己执行相同的操作。

关键部分是此位,它将销毁给定用户ID的所有会话:

$sessions = WP_Session_Tokens::get_instance( $user_id );
$sessions->destroy_all();
该函数的其余部分只是检查用户是否存在,检查权限,并发送JSON响应。它们可能与您的用例不相关,因此上述内容可能就足够了。

SO网友:Hossein

我知道这是个老话题但是destroy_all() 将销毁所有会话,但destroy_others() 销毁除当前会话以外的所有会话

Destroy all sessions:

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

Destroy all sessions (except current session):

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

结束

相关推荐

Php将博客文章显示为网格视图

我目前正在home.php 文件,我计划在“网格视图”中显示我的最后一篇博客文章,这样一行中就有4个容器,包含标题和更多信息。我试过一些东西,但都没有按我想要的方式工作。我做的最后一件事是像这样放置一个for循环:<?php for ($x = 1; $x <= 6; $x++) : ?> <div id=\"home_post_<?php echo $x ?> \" class=\"home_post\">