用户登录后是否可以选择销毁所有其他用户会话。我发现销毁会话的选项为
// get all sessions for user with ID $user_id
$sessions = WP_Session_Tokens::get_instance( $user->
ID );
// we have got the sessions, destroy them all!
$sessions->
destroy_all();
它可以用于对用户进行身份验证, 但是我正在使用社交登录插件来对用户进行身份验证, 因此需要破解该插件以实现相同目的。你能帮我找出在” wp_login” 操作之后或之后销毁所有先前会话的选项。
#1解决了!! destroy_all()将销毁所有会话, 因此在wp_login挂钩中使用它时, 它也会销毁当前会话, 相反, 我们可以使用destroy_others()函数。最终代码如下所示
function your_function( $user, $user_id) {
$sessions= WP_Session_Tokens::get_instance( get_current_user_id() );
$token = wp_get_session_token();
$sessions->
destroy_others( $token);
}
add_action('wp_login', 'your_function', 10, 2);
#2【如果同一用户再次登录,则销毁上一个会话】你可以尝试加入wp_login操作。可以在插件或你的functions.php中完成
<
?php
function your_function() {
// your code
}
add_action('wp_login', 'your_function');
?>
https://codex.wordpress.org/Plugin_API/Action_Reference/wp_login
推荐阅读
- 启动没有wordpress帐户的wordpress网站()
- 提交表单后,请保持选中复选框,自定义帖子类型
- functions.php内部的jQuery脚本不起作用
- 在wordpress网站内使用hubspot表单时,jQuery丢失
- jQuery隐藏按钮,如果文本框为空,则显示,如果文本框具有值
- jQuery代码不适用于WordPress的Div主题[重复]
- 连接表格并获取数据到手风琴/可折叠和表格
- jQuery ajax打破了我的Divi主题。我如何解决它()
- 12月活动|重拾写作的力量,挑战7/14/21日连更!