2024年07月15日 09:29:00
使用Redis实现单用户登录功能
01.项目场景: 简述项目相关背景: 系统需要能够通过数据字典的开关来实现单用户登录 02.问题描述 描述项目中遇到的问题: 一开始的思路是在用户第一次登录发起请求时,通过key来获取token,与请求头中的token对比,若相同则说明没有第二次登录,若不同则说明有第二次登录,第一次登录的就需要下线 但是发现redis中保存token的key是前缀+token的形式,因此就没办法拿到key 03.解决方案: 该问题的具体解决方案: 因为单用户登录时,它的username是相同的,所以整体思路就是遍历redis中的token,然后根据token获取username,将之与正在登录的用户的username做对比 若相同再加上对数据字典的单用户登录是否启用的判断,来执行后面的操作 Result<JSONObject> result = new Result<JSONObject>(); //根据前缀tokenFlag查询出redis中token Set<String> keys = redisTemplate.keys(CommonConstant....