| | |
| | | |
| | | private static final Long MILLIS_MINUTE_TEN = 20 * 60 * 1000L; |
| | | |
| | | private static final Long MILLIS_DAY = 60 * MILLIS_SECOND * 60 * 24; |
| | | private static final long MILLIS_DAY = 60 * MILLIS_SECOND * 60 * 24; |
| | | |
| | | @Autowired |
| | | private RedisCache redisCache; |
| | |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | public LoginUser getLoginUser(Claims claims){ |
| | | // 解析对应的权限以及用户信息 |
| | | String uuid = (String) claims.get(Constants.LOGIN_USER_KEY); |
| | | String userKey = getTokenKey(uuid); |
| | | return redisCache.getCacheObject(userKey); |
| | | } |
| | | |
| | | /** |
| | |
| | | loginUser.setExpireTime(loginUser.getLoginTime() + MILLIS_DAY); |
| | | // 根据uuid将loginUser缓存 |
| | | String userKey = getTokenKey(loginUser.getToken()); |
| | | redisCache.setCacheObject(userKey, loginUser, Math.toIntExact(MILLIS_DAY), TimeUnit.MINUTES); |
| | | redisCache.setCacheObject(userKey, loginUser,1, TimeUnit.DAYS); |
| | | if (!soloLogin) { |
| | | // 缓存用户唯一标识,防止同一帐号,同时登录 |
| | | String userIdKey = getUserIdKey(loginUser.getUser().getUserId()); |
| | | redisCache.setCacheObject(userIdKey, userKey, Math.toIntExact(MILLIS_DAY), TimeUnit.MINUTES); |
| | | redisCache.setCacheObject(userIdKey, userKey, 1, TimeUnit.DAYS); |
| | | } |
| | | } |
| | | |
| | |
| | | * @param token 令牌 |
| | | * @return 数据声明 |
| | | */ |
| | | private Claims parseToken(String token) { |
| | | public Claims parseToken(String token) { |
| | | return Jwts.parser() |
| | | .setSigningKey(secret) |
| | | .parseClaimsJws(token) |