用户登录后是否可以选择销毁所有其他用户会话。我发现销毁会话的选项为
// 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
评论前必须登录!
注册