|
@@ -42,6 +42,10 @@ public class TokenService
|
|
@Value("${token.expireTime}")
|
|
@Value("${token.expireTime}")
|
|
private int expireTime;
|
|
private int expireTime;
|
|
|
|
|
|
|
|
+ // 令牌有效期(默认30分钟)
|
|
|
|
+ @Value("${apptoken.expireTime}")
|
|
|
|
+ private int expireTimeApp;
|
|
|
|
+
|
|
protected static final long MILLIS_SECOND = 1000;
|
|
protected static final long MILLIS_SECOND = 1000;
|
|
|
|
|
|
protected static final long MILLIS_MINUTE = 60 * MILLIS_SECOND;
|
|
protected static final long MILLIS_MINUTE = 60 * MILLIS_SECOND;
|
|
@@ -118,6 +122,23 @@ public class TokenService
|
|
claims.put(Constants.LOGIN_USER_KEY, token);
|
|
claims.put(Constants.LOGIN_USER_KEY, token);
|
|
return createToken(claims);
|
|
return createToken(claims);
|
|
}
|
|
}
|
|
|
|
+ /**
|
|
|
|
+ * 创建令牌
|
|
|
|
+ *
|
|
|
|
+ * @param loginUser 用户信息
|
|
|
|
+ * @return 令牌
|
|
|
|
+ */
|
|
|
|
+ public String createTokenApp(LoginUser loginUser)
|
|
|
|
+ {
|
|
|
|
+ String token = IdUtils.fastUUID();
|
|
|
|
+ loginUser.setToken(token);
|
|
|
|
+ setUserAgent(loginUser);
|
|
|
|
+ refreshTokenApp(loginUser);
|
|
|
|
+
|
|
|
|
+ Map<String, Object> claims = new HashMap<>();
|
|
|
|
+ claims.put(Constants.LOGIN_USER_KEY, token);
|
|
|
|
+ return createToken(claims);
|
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
/**
|
|
* 验证令牌有效期,相差不足20分钟,自动刷新缓存
|
|
* 验证令牌有效期,相差不足20分钟,自动刷新缓存
|
|
@@ -148,6 +169,19 @@ public class TokenService
|
|
String userKey = getTokenKey(loginUser.getToken());
|
|
String userKey = getTokenKey(loginUser.getToken());
|
|
redisCache.setCacheObject(userKey, loginUser, expireTime, TimeUnit.MINUTES);
|
|
redisCache.setCacheObject(userKey, loginUser, expireTime, TimeUnit.MINUTES);
|
|
}
|
|
}
|
|
|
|
+ /**
|
|
|
|
+ * 刷新令牌有效期
|
|
|
|
+ *
|
|
|
|
+ * @param loginUser 登录信息
|
|
|
|
+ */
|
|
|
|
+ public void refreshTokenApp(LoginUser loginUser)
|
|
|
|
+ {
|
|
|
|
+ loginUser.setLoginTime(System.currentTimeMillis());
|
|
|
|
+ loginUser.setExpireTime(loginUser.getLoginTime() + expireTimeApp * MILLIS_MINUTE);
|
|
|
|
+ // 根据uuid将loginUser缓存
|
|
|
|
+ String userKey = getTokenKey(loginUser.getToken());
|
|
|
|
+ redisCache.setCacheObject(userKey, loginUser, expireTime, TimeUnit.MINUTES);
|
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
/**
|
|
* 设置用户代理信息
|
|
* 设置用户代理信息
|