没有万无一失的方法可以做到这一点,我要指出的是,如果您尝试这样做,您将无法缓存页面以提高性能
强制用户只能打开一个页面,没有选项卡,没有其他设备/浏览器,这是不可能的,尝试这样做的一些措施很容易绕过。通常情况下,用户会意外地绕过它们,而用户从来没有意识到这一点。
为此,您的所有浏览器选项卡都需要交叉通信。这在浏览器之间不起作用,或者如果JS失败,或者JS被关闭。也有可能每个选项卡都会相互检测,并且所有选项卡都会锁定。浏览器对此的支持将受到限制。它不会是基于WordPress的解决方案
每个设备强制用户会话这也不是万无一失的,没有保证,但更简单一些
$sessions = wp_get_all_sessions();
if ( count( $sessions ) > 1 ) {
// more than 1 session, logout somewhere else to resume
}
请注意:
如果您的站点不是https,则用户必须登录。任何人都可以窃取cookie并共享会话。用户可以从开发工具中复制粘贴cookie并将其插入其他设备上的浏览器中。用户到达页面后,无需执行任何操作即可停止此操作。他们可以在其他选项卡中注销并在其他设备上打开该页面,给他们一个页面,但在两台设备上,一个关于IP跟踪的注释,这将不起作用,并且会产生高度不可预测的结果。
例如,NAT使本地网络上的所有内容共享一个IP。就像代理或VPN一样。ISP也在试验或使用CGNAT,因此数百万用户可能共享IPv4地址的一小部分,从而导致不可预测的结果。
您还可以锁定拴在一起或使用手机的人。当他们在手机桅杆上移动时,他们的IP可能会改变,从而触发你正在构建的多屏幕检测系统。
一个基本问题是,在Hangouts/Skype/Zoom/FB Live/Twitch/etc/etc/etc中,打印屏幕键“另存为”(save as),你可以很容易地在这方面投入大量的时间,却发现有人用一些琐碎的事情回避了它。E、 g.当花费数周时间构建高级防盗系统来阻止人们右键单击保存图像时,却发现将图像拖放到桌面上效果很好。