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

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

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

    推荐阅读