单端登录
This commit is contained in:
zhouwentao 2024-04-20 12:56:02 +08:00
parent 901b9d9042
commit 1669e2f314
1 changed files with 11 additions and 8 deletions

View File

@ -385,15 +385,18 @@ public class MiniUserController {
public void oneUserLogin(SysUser user){ public void oneUserLogin(SysUser user){
//仅保留一端登录 //仅保留一端登录
Collection<String> keys = redisTemplate.keys(CommonConstant.PREFIX_USER_TOKEN + "*"); Collection<String> keys = redisTemplate.keys(CommonConstant.PREFIX_USER_TOKEN + "*");
for (String token : keys) { for (String key : keys) {
String token = (String)redisUtil.get(key);
SysUser sysUser = sysUserService.getUserByName(JwtUtil.getUsername(token)); SysUser sysUser = sysUserService.getUserByName(JwtUtil.getUsername(token));
if (sysUser!=null && sysUser.getId().equals(user.getId())) { if (sysUser!=null) {
//清空用户登录Token缓存 if(sysUser.getId().equals(user.getId())){
redisUtil.del(CommonConstant.PREFIX_USER_TOKEN + token); //清空用户登录Token缓存
//清空用户登录Shiro权限缓存 redisUtil.del(CommonConstant.PREFIX_USER_TOKEN + token);
redisUtil.del(CommonConstant.PREFIX_USER_SHIRO_CACHE + sysUser.getId()); //清空用户登录Shiro权限缓存
//清空用户的缓存信息包括部门信息例如sys:cache:user::<username> redisUtil.del(CommonConstant.PREFIX_USER_SHIRO_CACHE + sysUser.getId());
redisUtil.del(String.format("%s::%s", CacheConstant.SYS_USERS_CACHE, sysUser.getUsername())); //清空用户的缓存信息包括部门信息例如sys:cache:user::<username>
redisUtil.del(String.format("%s::%s", CacheConstant.SYS_USERS_CACHE, sysUser.getUsername()));
}
} }
} }
} }