如何设置唯一登录,同一账号,同一时间只能登录一次
发布网友
发布时间:2022-04-19 18:31
我来回答
共3个回答
热心网友
时间:2023-06-29 17:37
方案一:
可以每次登录的时候生成一个COOKIE密钥记录到数据库并发送到客户端,每次客户端提交的COOKIE都要检查一下那个随机密钥是否与数据库里面的相同即可。
方案二:
将SESSION保存在数据库中,用户登录以后在该用户的用户表中记录 SESSION ID 值,并在SESSION表中将这个用户原来的SESSION ID删除。或者如果SESSION里面有值就不给他登录。
下面的压缩包里面是一个数据库保存SESSION的例子:
http://www.zxingphp.cn/download/PHP_Session.gz
热心网友
时间:2023-06-29 17:38
建一个数据表 比如叫 onlineuser
UserName/UpdateTime/UserKey
在用户登录时,记下这个用户的用户名,并生成一个key,存入到他的cookies里,设置失效时间为1天,然后,在一个页面通用文件里,更新UpdateTime为最新时间
另外,页面通用文件中还需要做另一件事,把UpdateTime>10分钟的用户从这个表中删除掉。
然后 在用户登录时加入判定,如果在OnlineUser表中已经有这个用户,检查cookies里的Key是否和数据表中的UserKey相同,相同则允许登录,不同则提示“该用户已经在线,请10分钟后重试”,拒绝登录,并清除掉用户cookies中的Key。而如果OnlineUser表中没有这个用户,则直接允许登录。
用户LoginOut的时候,将他的cookies中的Key要一并清除。
这样可以实现的效果是,一个用户登录后,别人就不能再登,而且即便掉线,他10分钟内也还可以再登。
热心网友
时间:2023-06-29 17:38
user表里留个字段 status 登陆上设为1,退出了设为0
每次这样判断下不就行了?