php - 在php中维护一个登录用户到一个帐户

标签 php mysql authentication login-control login-script

我想使用 PHPMySQL 制作一个登录系统,并且每次在任何时候只有一个人登录到我的系统的时间。如果同一用户登录到另一个窗口/ session /地点,则旧的运行实例应该失效,而新的实例应该被验证。

我知道我可以通过将 session ID 存储在数据库中以及一些检查它并定期或在任何数据库操作中不断验证它的例程来完成此操作。

我是否有任何其他方法可以完成此操作,以便最大限度地减少验证检查,并且我不必在每次刷新页面时触发查询来检查用户是否在上次记录的有效登录 session 中。

简而言之,我可以总结一下,我需要一种技术,以便只有我最后一个有效的登录浏览器窗口提供给 webapp。

最佳答案

你不需要任何轮询方法,事实上你需要做的就是将任何登录用户的 session ID 连同他们的用户名一起存储在数据库中。

然后,在每次登录时,只需检查登录用户是否已存储 session 。如果他们这样做,则使该 session 无效并将新登录的 session 存储在数据库中。

当旧 session 尝试重新连接到应用程序时,他们 session 的数据将不再存储在您的服务器上,因此他们将不再登录。

所有这一切都需要在有人登录时进行额外检查,而不是任何轮询方法或类似方法。

关于php - 在php中维护一个登录用户到一个帐户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4980208/

相关文章:

php - 准备似乎从字符串中删除引号,以便 mysql 日期时间字段不接受它

java - 使用 Tomcat 进行连接池时出现 SQLNestedException

angular - 在 golang 中对 AES 解密的 panic 返回

Linux:使用另一个环境变量的一部分设置环境变量

php - 谷歌客户端登录授权

php - 表单数据未提交到MySql数据库中

php - 如何为 Centos 安装 php-mysqli 包

rest - 使用基于表单的身份验证时,http 服务器应该在 401 响应中返回什么 WWW-Authenticate header ?

javascript - php在目录中创建文件

php - 在 php 中,如何使函数库更具凝聚力?