From 5f3cf501f9f6c216df17ee8af6618b55b537d21a Mon Sep 17 00:00:00 2001 From: yanghui <2536613402@qq.com> Date: 星期五, 21 十月 2022 16:57:54 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/huacheng_test' into local_20221014 --- flower_city/src/main/java/com/dg/core/manager/RedisTokenManager.java | 63 ++++++++++++++++++++++++++++--- 1 files changed, 56 insertions(+), 7 deletions(-) diff --git a/flower_city/src/main/java/com/dg/core/manager/RedisTokenManager.java b/flower_city/src/main/java/com/dg/core/manager/RedisTokenManager.java index fd6a87c..e5e39ef 100644 --- a/flower_city/src/main/java/com/dg/core/manager/RedisTokenManager.java +++ b/flower_city/src/main/java/com/dg/core/manager/RedisTokenManager.java @@ -1,12 +1,15 @@ package com.dg.core.manager; import com.dg.core.Constant; +import io.jsonwebtoken.Claims; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.script.DigestUtils; import org.springframework.data.redis.serializer.JdkSerializationRedisSerializer; import org.springframework.stereotype.Component; +import org.springframework.util.ObjectUtils; import java.util.UUID; import java.util.concurrent.TimeUnit; @@ -15,8 +18,8 @@ * 通过Redis存储和验证token的实现类 */ @Component -public class RedisTokenManager implements TokenManager { - +public class RedisTokenManager implements TokenManager +{ private RedisTemplate<String, String> redis; @Qualifier("redisTemplate") @@ -28,7 +31,7 @@ } @Override - public String createToken(long userId, long userRole) { + public String createToken(String userId, String userRole) { //使用uuid作为源token String uuid = UUID.randomUUID().toString().replace("-", ""); String token = DigestUtils.sha1DigestAsHex(uuid + userId + "e23ktjsdf") + "-" + userRole; @@ -38,9 +41,8 @@ return token; } - public boolean checkToken(String token) { - if (token == null) { + if (StringUtils.isEmpty(token)) { return false; } String userId = redis.boundValueOps(token).get(); @@ -49,6 +51,30 @@ } //如果验证成功,说明此用户进行了一次有效操作,延长token的过期时间 redis.boundValueOps(token).expire(Constant.TOKEN_EXPIRES_HOUR, TimeUnit.HOURS); + return true; + } + + + /** + * 验证花城token + * @param token + * @return + */ + @Override + public boolean checkHCToken(String token) { + if (StringUtils.isEmpty(token)) { + return false; + } + // token解析 + Claims claims = JWTTokenUtil.getClaimsFromToken(token); + if (ObjectUtils.isEmpty(claims)) { + return false; + } + String userId = claims.getSubject(); + if (ObjectUtils.isEmpty(userId)) + { + return false; + } return true; } @@ -62,13 +88,36 @@ return Long.parseLong(userId); } + /** + * 获取花城e+的 UserId + * @param token + * @return + */ + @Override + public long getHCUserId(String token) { + if (token == null) { + return -1; + } + // token解析 + Claims claims = JWTTokenUtil.getClaimsFromToken(token); + if (ObjectUtils.isEmpty(claims)) { + return -1; + } + String userId = claims.getSubject(); + if (ObjectUtils.isEmpty(userId)) + { + return -1; + } + return Long.parseLong(userId); + } + public void deleteToken(String token) { redis.delete(token); } @Override - public String getTokenByUserId(long userId) { - return redis.boundValueOps(String.valueOf(userId)).get(); + public String getTokenByUserId(String userId) { + return redis.boundValueOps(userId).get(); } } -- Gitblit v1.7.1