如题。为了防止用户进行账号分享使用,即需要禁止用户一个账号在多台机同时登录使用,注意,客户端为浏览器。应该如何设计这样一样一个方案?当出现重复登录时,需要把最先登录的那个T下线。如何来设计 ?假设系统是有一定的负载,需要考虑方案实现性能。请大神们多考虑下你想到的方案有没有漏洞,感觉好难实现的。
--------后面补充------如果您的方案是基于下面的思路实现的,在一个大型系统中不可行的:1、靠存储用户登录状态信息,用户登录时判断该用户是否已有登录状态保存,这种是不可靠的,用户非正常退出后,他的登录状态信息会一值保持 ,需要做心跳检查。这个心跳时间是个问题。所以不可靠。2、使用token存储在客户端实现的,只要token被用户分享,就可以共享账号登录。
1 回答
宝慕林4294392
TA贡献2021条经验 获得超8个赞
并没有那么难
新建token表
字段 id,token,userid,created_at,expire_at
登陆逻辑不变,使用账号密码登陆,登陆后,将该用户以前的token设为过期,并生成token写入该表,并把信息返回前端
前端收到token可以存在localStorage,访问需要登录的借口时带上token,建议放在请求头传输
后台收到请求后读取请求头的token,与数据库比对,如果有效则token对应的userid为已登录用户
- 1 回答
- 0 关注
- 729 浏览
添加回答
举报
0/150
提交
取消