我刚刚发现stackoverflow有一个链接可以注销每台登录的计算机。
所以..我想过如何在 PHP 中实现相同的功能。我想出了使用 session_set_save_haldner 来控制 write() 方法。在 write() 方法中,我可以创建一个以用户名开头的会话文件。例如,用户 john 可能有会话文件 john_kdkajdkak 和 john_29039dla。当 John 单击“Logout Everywhere”时,我可以编写一个代码来查找以“john”开头的文件名,然后删除它们以清除会话。
还有其他更好的解决方案吗?如果你已经让它工作了,你是如何实现它的?
使用数据库来持久化会话数据。
使用session_set_save_handler您可以为用户会话滚动您自己的数据库存储后端 -sessions具有user_id与users表相关的外键。“到处注销”按钮会触发简单的操作DELETE FROM sessions WHERE user_id = 1234并使用户的每个会话无效。
您还可以轻松地向session表中添加其他列- 例如,用于存储会话的 IP 地址,以便用户可以查看其他会话从何处登录。
使用数据库以获得灵活性和性能。