个性化阅读
专注于IT技术分析

如果同一用户再次登录,则销毁上一个会话

用户登录后是否可以选择销毁所有其他用户会话。我发现销毁会话的选项为

 // 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

赞(0)
未经允许不得转载:srcmini » 如果同一用户再次登录,则销毁上一个会话

评论 抢沙发

评论前必须登录!