单点登陆

dev
caolin 2023-09-11 01:11:34 +08:00
parent 86f663e55f
commit 8926ac4236
2 changed files with 16 additions and 0 deletions

View File

@ -72,6 +72,9 @@ public class Constants {
//专项数量前缀
public static String SPECIAL_NUM_PREFIX= "SpecialNum_";
//token手机号前缀
public static String PHONE_PREFIX= "loginPhone_";
}

View File

@ -98,6 +98,13 @@ public class TdSysUserServiceImpl extends ServiceImpl<TdSysUserMapper, TdSysUser
throw new BusinessException("用户注册异常");
}
}
//清除上一个人登陆的token信息
String oldToken = redisCache.getCacheObject(Constants.PHONE_PREFIX + tdSysUser.getPhone());
if (StrUtil.isNotBlank(oldToken)){
redisCache.deleteObject(Constants.PHONE_PREFIX + tdSysUser.getPhone());
redisCache.deleteObject(oldToken);
}
String token = UUID.randomUUID().toString();
LoginUserVo loginUserVo = new LoginUserVo();
BeanUtils.copyProperties(tdSysUser, loginUserVo);
@ -105,6 +112,7 @@ public class TdSysUserServiceImpl extends ServiceImpl<TdSysUserMapper, TdSysUser
loginUserVo.setDays(DateTimeUtil.getIntervalDays(loginUserVo.getCreateTime(),LocalDateTime.now()) + 1);
// 存入redis
redisCache.setCacheObject(token, tdSysUser, tokenExpireTime, TimeUnit.DAYS);
redisCache.setCacheObject(Constants.PHONE_PREFIX + tdSysUser.getPhone(), token, tokenExpireTime, TimeUnit.DAYS);
return loginUserVo;
}
@ -112,6 +120,11 @@ public class TdSysUserServiceImpl extends ServiceImpl<TdSysUserMapper, TdSysUser
public Boolean loginOut() {
String token = TokenThreadUtil.getToken();
if (StrUtil.isNotBlank(token)) {
TdSysUser tdSysUser = redisCache.getCacheObject(token);
if (Objects.nonNull(tdSysUser) && Objects.nonNull(tdSysUser.getPhone())){
redisCache.deleteObject(Constants.PHONE_PREFIX + tdSysUser.getPhone());
}
redisCache.deleteObject(token);
}
return Boolean.TRUE;