单端登录
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){
//仅保留一端登录
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));
if (sysUser!=null && sysUser.getId().equals(user.getId())) {
//清空用户登录Token缓存
redisUtil.del(CommonConstant.PREFIX_USER_TOKEN + token);
//清空用户登录Shiro权限缓存
redisUtil.del(CommonConstant.PREFIX_USER_SHIRO_CACHE + sysUser.getId());
//清空用户的缓存信息包括部门信息例如sys:cache:user::<username>
redisUtil.del(String.format("%s::%s", CacheConstant.SYS_USERS_CACHE, sysUser.getUsername()));
if (sysUser!=null) {
if(sysUser.getId().equals(user.getId())){
//清空用户登录Token缓存
redisUtil.del(CommonConstant.PREFIX_USER_TOKEN + token);
//清空用户登录Shiro权限缓存
redisUtil.del(CommonConstant.PREFIX_USER_SHIRO_CACHE + sysUser.getId());
//清空用户的缓存信息包括部门信息例如sys:cache:user::<username>
redisUtil.del(String.format("%s::%s", CacheConstant.SYS_USERS_CACHE, sysUser.getUsername()));
}
}
}
}