| | |
| | | String uuid = (String) claims.get(Constants.LOGIN_USER_KEY); |
| | | String userKey = getTokenKey(uuid); |
| | | LoginUser user = redisCache.getCacheObject(userKey); |
| | | restoreMiddlePlatformToken(user, uuid); |
| | | return user; |
| | | } |
| | | catch (Exception e) |
| | |
| | | { |
| | | String userKey = getTokenKey(token); |
| | | redisCache.deleteObject(userKey); |
| | | redisCache.deleteObject(getMiddlePlatformTokenKey(token)); |
| | | } |
| | | } |
| | | |
| | |
| | | // 根据uuid将loginUser缓存 |
| | | String userKey = getTokenKey(loginUser.getToken()); |
| | | redisCache.setCacheObject(userKey, loginUser, expireTime, TimeUnit.MINUTES); |
| | | cacheMiddlePlatformToken(loginUser); |
| | | } |
| | | /** |
| | | * 刷新令牌有效期 |
| | |
| | | { |
| | | return CacheConstants.LOGIN_TOKEN_KEY + uuid; |
| | | } |
| | | |
| | | /** |
| | | * 目的:中台 Token 独立存储,避免因 LoginUser 的对外 JSON 脱敏规则而丢失认证信息。 |
| | | */ |
| | | private void cacheMiddlePlatformToken(LoginUser loginUser) |
| | | { |
| | | if (StringUtils.isNotEmpty(loginUser.getMiddlePlatformToken())) |
| | | { |
| | | redisCache.setCacheObject(getMiddlePlatformTokenKey(loginUser.getToken()), |
| | | loginUser.getMiddlePlatformToken(), expireTime, TimeUnit.MINUTES); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 目的:从独立 Redis 键恢复中台 Token,供后续所有中台业务请求添加 Bearer 认证头。 |
| | | */ |
| | | private void restoreMiddlePlatformToken(LoginUser loginUser, String uuid) |
| | | { |
| | | if (loginUser == null || StringUtils.isEmpty(uuid)) |
| | | { |
| | | return; |
| | | } |
| | | String middlePlatformToken = redisCache.getCacheObject(getMiddlePlatformTokenKey(uuid)); |
| | | loginUser.setMiddlePlatformToken(middlePlatformToken); |
| | | } |
| | | |
| | | private String getMiddlePlatformTokenKey(String uuid) |
| | | { |
| | | return CacheConstants.MIDDLE_PLATFORM_TOKEN_KEY + uuid; |
| | | } |
| | | } |