- 请注意,会话在同一浏览器的所有选项卡之间共享。
我的第一个帖子在这里。
我已经建立了一个登录系统(具有密码验证,强度,对数据库的检查,哈希等),并且几乎完整。我已经到了可以防止同一用户重复登录的位置,检查在登录过程中在数据库中创建的两个字段:一个是“ token”中随机生成的令牌,另一个是“ isSignedIn” 0和1。当前,它防止同一用户重复登录,并且还将在下一页操作中将该人引导下。
我的下一个目标是防止两个不同的用户同时登录到同一台计算机上的同一Web浏览器。经过数小时的搜索,我没有找到一个可靠的答案。
这里是我遇到的问题:在测试过程中,使用同一浏览器登录了多个用户:
我以三个不同的用户身份登录我的门户;这三个都有他们的'token'和'isSignedIn'写入数据库]]
我注销了一个用户,该用户的token / isSignedIn值为分别删除/更改]]
我不知道为什么注销一个用户会阻止其他两个在注销时删除其'token'和'isSignedIn'。它适用于第一个用户,没问题。我假设有某种会话重叠会杀死其他两个。我不能告诉客户简单地说“一次只能在一个浏览器上的一台计算机上只有一个人”,所以我需要一些帮助。
我想一次只限制一个浏览器上的一个用户,或者阻止第二/第三/第四用户登录同一浏览器。
任何帮助将不胜感激!
谢谢。数据库映像“>
注销处理器
我的第一个帖子在这里。我已经建立了一个登录系统(具有密码验证,强度,对数据库的检查,哈希等),并且几乎完整。我已经到了可以防止重复的地方...
为了防止一个用户登录同一浏览器,请使用用户会话变量(例如您使用的用户会话变量(isSignedIn),并检查其变量以将用户从登录页面重定向到首页)。将以下代码放在登录页面的顶部:
并注销操作添加:$ isSignedIn = 0;