如何设置一个会员账号只运行单人实时登陆

时间:2015-11-09

    如果一个帐户同时在多个地点同时登陆时如果修改东西,另一个地点又登陆同一帐号的话很容易报错,对于开放的注册的WordPress 网站来说,特别是有会员购买服务的站点的话可能需要禁止用户共享帐户的,简单来说就是要禁止一个帐户同时多人访问功能。


    小编一开始实现这个功能用了wordpress一个插件使IP限制一天访问数量,但是小编考虑到用户要不断的发文章或者回复这样的话还是不行。最近小编在论坛上看见了一个关于wordpress v4.1禁止一个帐户同时多人访问内容,于是做了一个总结教大家如何在无忧主机php空间中完美的实现Wordpress v4.1版本实现禁止一个帐户同时多人访问。

找到functions.php添加如下代码:

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' );


    如果各位朋友丛安全考虑的话建议还是使用这个功能,如果怕代码输入错的用户小编在教大家一个简单的办法安装 Prevent Concurrent Logins插件直接安装启用即可!

上一条:WordPress 给长文章内容分页 下一条:wordpress评论链接跳转设置技巧分享

相关文章

最新文章