首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP -如何防止用户同时从多台机器登录?

问PHP -如何防止用户同时从多台机器登录?
EN

Stack Overflow用户
提问于 2010-08-13 12:36:55
回答 5查看 1.7K关注 0票数 0

有没有办法防止用户同时从不同的机器登录系统?

谢谢

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-08-13 12:51:02

所有这些基于IP地址的解决方案的问题是,如果用户位于通过多个IP地址路由其请求的代理服务器之后,这可能会失败,这意味着用户无法保持登录状态。

相反,您可以做的是,当任何用户登录时,给他们一个新的会话令牌,并使属于同一用户的所有先前会话令牌过期。

这需要您保留一个表,其中包含所有有效的会话令牌以及它们与哪个用户相关联。请注意,PHP的内置会话处理在没有太多修改的情况下不太可能做到这一点。

票数 7
EN

Stack Overflow用户

发布于 2010-08-13 12:41:20

当用户登录时,将其IP地址放入数据库。如果其IP地址发生变化,则要求其重新登录。

更简单的方法是保存他们的SessionID。如果发生更改,则使旧会话无效。

票数 1
EN

Stack Overflow用户

发布于 2010-08-13 12:42:50

这是你无法阻止的。也不应该这么做。

相反,您必须手动注销所有以前登录过的用户。

只需在用户数据库中跟踪会话id,如果会话id不等于1,则关闭该会话,并在成功登录后将其存储在数据库中。

这将使所有同时登录的用户不断登录,并毁掉他们使用您的服务的所有努力。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3473921

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档