我想使用 PHP 和 MySQL 制作一个登录系统,并且每次在任何时候只有一个人登录到我的系统的时间。如果同一用户登录到另一个窗口/ session /地点,则旧的运行实例应该失效,而新的实例应该被验证。
我知道我可以通过将 session ID 存储在数据库中以及一些检查它并定期或在任何数据库操作中不断验证它的例程来完成此操作。
我是否有任何其他方法可以完成此操作,以便最大限度地减少验证检查,并且我不必在每次刷新页面时触发查询来检查用户是否在上次记录的有效登录 session 中。
简而言之,我可以总结一下,我需要一种技术,以便只有我最后一个有效的登录浏览器窗口提供给 webapp。
最佳答案
你不需要任何轮询方法,事实上你需要做的就是将任何登录用户的 session ID 连同他们的用户名一起存储在数据库中。
然后,在每次登录时,只需检查登录用户是否已存储 session 。如果他们这样做,则使该 session 无效并将新登录的 session 存储在数据库中。
当旧 session 尝试重新连接到应用程序时,他们 session 的数据将不再存储在您的服务器上,因此他们将不再登录。
所有这一切都需要在有人登录时进行额外检查,而不是任何轮询方法或类似方法。
关于php - 在php中维护一个登录用户到一个帐户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4980208/