Disallow second login session

时间:2014-05-25 作者:ArgGeo

我现在正在努力寻找一个解决方案,持续了两个月,但不幸的是,我没有找到任何结果。我有一个基于订阅的网站,可以播放音乐。客户基本上购买的是一个“面板”,他们在那里听音乐without the need to refresh 页面。我需要的是,如果他们的帐户已经在使用中,就不允许他们登录。我发现许多插件会强制用户注销,但只有在刷新页面时才会发生这种情况。例如,如果:A登录,它也可以工作。B使用相同的帐户登录,此时A将自动注销(我猜是使用Ajax)。过去没有人需要这个,这有点奇怪。有人能帮忙吗?

提前谢谢。

2 个回复
SO网友:Otto

你找不到任何东西的原因是WordPress没有使用任何形式的“会话”。未保存或检索登录状态信息。

登录WordPress基本上会在浏览器中设置一个cookie,它是一个单一的身份验证点。它相当于一个用户名和密码,带有加密和超时,都在一个cookie中。嗯,两块饼干。

无论如何,WordPress是无状态的。如果你想在某人切换到另一个位置时将其注销,那么除了WordPress核心本身之外,你还需要其他代码。这可能意味着为您的用例定制代码。

所以,请非常详细地定义您的案例,也许有人可以帮助您设计解决方案。最佳方案。

SO网友:Mona

此代码在WordPress中对我有效:

add_filter( \'authenticate\',\'one_session_per_user\', 30, 3 );

function one_session_per_user( $user, $username, $password ) {
    $sessions = WP_Session_Tokens::get_instance( $user->ID );
    $all_sessions = $sessions->get_all();
    if ( count($all_sessions) ) {
        $login_page  = home_url( \'/mt-pages/login/already_login/\' );
        wp_redirect( $login_page . "?login=false/already_login/" );
        exit;
    }
    return $user;
}

结束

相关推荐

加载AJAX后,WP视频媒体播放器无法加载正确的CSS

我有一篇使用WP的帖子[video] 显示我的视频文件的快捷码。应该是这样的:但看起来是这样的:在我单击“加载更多帖子”之后,AJAX调用。在我点击帖子后,视频播放器将看起来像我想要的样子。只有当文章加载了AJAX时,才会出现这样的情况。谁能告诉我怎么了?谢谢