WordPress 禁止多个人登录同一用户帐号

2016-08-08 06:19 844 4 条评论 龙笑天下
Dragon主题购买

Wordpress 禁止多个人登录同一用户帐号

许多 WordPress 都是开放注册的,又有不少的站点是在做交易站点,可以进行购买实物在线交易的,在线交易的站点往往是禁止同一个帐号多人使用的,而在 WordPress 中是没有限制的,也就是说一个帐号可以进行共享,然后多人同时重复登录的,这给交易带来了困难,也带来一定的安全问题。

而对于如何禁止同一个注册帐号同时重复登录的问题,有简单的插件来实现,如:Prevent Concurrent LoginsWp Single Login,这 2 个插件都不需多余设置,任选其一安装启用即可。

当然,不想用插件的话,也可以通过在 functions.php 中添加如下代码(来自上面的插件 Prevent Concurrent Logins)的方法来解决这个问题:

/**
 * WordPress 禁止多个人登录同一用户帐号
 * 龙笑天下  https://www.ilxtx.com/prevent-concurrent-logins-or-wp-single-login.html
 */
function pcl_user_has_concurrent_sessions() {
            return ( is_user_logged_in() && count( wp_get_all_sessions() ) > 1 );
    }
    //用户当前会话数组
    function pcl_get_current_session() {
            $sessions = WP_Session_Tokens::get_instance( get_current_user_id() );
            return $sessions->get( wp_get_session_token() );
    }
    //如果用户会话更新则销毁其他会话
    function pcl_disallow_account_sharing() {
            if ( ! pcl_user_has_concurrent_sessions() ) {
                    return;
            }
            $newest = max( wp_list_pluck( wp_get_all_sessions(), 'login' ) );
            $session = pcl_get_current_session();
            if ( $session['login'] === $newest ) {
                    wp_destroy_other_sessions();
            } else {
                    wp_destroy_current_session();
            }
    }
add_action( 'init', 'pcl_disallow_account_sharing' );

「点点赞赏,手留余香」

还没有人赞赏,快来当第一个赞赏的人吧!

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

2016-08-01

2016-08-22

发表评论

表情 格式 贴图 链接 私密 签到
Dragon主题购买阿里云特价云服务器1核2G低至86元,N4共享型服务器3年仅需799元腾讯云特价云服务器1核2G 88元/年 2核4G3M688元/3年,更有千元代金券礼包免费领!
评论
正在努力加载中...
扫一扫二维码分享
×
We use cookies on our website to give you the most relevant experience by remembering your preferences and repeat visits. By clicking “Accept”, you consent to the use of ALL the cookies. Learn more