|
@@ -2,6 +2,7 @@ package com.tzld.longarticle.recommend.server.service.exterior.impl;
|
|
|
|
|
|
import cn.hutool.core.lang.UUID;
|
|
|
import com.tzld.longarticle.recommend.server.common.enums.SecretEnum;
|
|
|
+import com.tzld.longarticle.recommend.server.model.param.AccessTokenParam;
|
|
|
import com.tzld.longarticle.recommend.server.model.vo.AccessTokenVo;
|
|
|
import com.tzld.longarticle.recommend.server.service.exterior.AccessTokenService;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
@@ -21,14 +22,17 @@ public class AccessTokenServiceImpl implements AccessTokenService {
|
|
|
private RedisTemplate<String, String> redisTemplate;
|
|
|
|
|
|
@Override
|
|
|
- public AccessTokenVo getAccessToken(String secret) {
|
|
|
- if (!SecretEnum.contains(secret)) {
|
|
|
+ public AccessTokenVo getAccessToken(AccessTokenParam param) {
|
|
|
+ if(param == null || StringUtils.isEmpty(param.getSecret())){
|
|
|
+ throw new RuntimeException("参数错误");
|
|
|
+ }
|
|
|
+ if (!SecretEnum.contains(param.getSecret())) {
|
|
|
throw new RuntimeException("secret 不存在");
|
|
|
}
|
|
|
AccessTokenVo accessTokenVo = new AccessTokenVo();
|
|
|
- String accessToken = redisTemplate.opsForValue().get(secret);
|
|
|
+ String accessToken = redisTemplate.opsForValue().get(param.getSecret());
|
|
|
if (StringUtils.isNotEmpty(accessToken)) {
|
|
|
- Long expire = redisTemplate.getExpire(secret, TimeUnit.SECONDS);
|
|
|
+ Long expire = redisTemplate.getExpire(param.getSecret(), TimeUnit.SECONDS);
|
|
|
accessTokenVo.setAccessToken(accessToken);
|
|
|
accessTokenVo.setExpires(expire);
|
|
|
if (redisTemplate.opsForHash().size(ACCESS_TOKEN_LIST) > 20) {
|
|
@@ -42,7 +46,7 @@ public class AccessTokenServiceImpl implements AccessTokenService {
|
|
|
}
|
|
|
} else {
|
|
|
String newAccessToken = UUID.randomUUID().toString().replace("-", "");
|
|
|
- redisTemplate.opsForValue().set(secret, newAccessToken, 2L, TimeUnit.HOURS);
|
|
|
+ redisTemplate.opsForValue().set(param.getSecret(), newAccessToken, 2L, TimeUnit.HOURS);
|
|
|
long expire = 7200L;
|
|
|
long timestamp = System.currentTimeMillis() / 1000 + expire + 600;
|
|
|
redisTemplate.opsForHash().put(ACCESS_TOKEN_LIST, newAccessToken, timestamp);
|