diff --git a/online-taxi-public/api-passenger/src/main/java/com/taxi/apipassenger/interceptor/InterceptorConfig.java b/online-taxi-public/api-passenger/src/main/java/com/taxi/apipassenger/interceptor/InterceptorConfig.java index aa31e3f..06a371a 100644 --- a/online-taxi-public/api-passenger/src/main/java/com/taxi/apipassenger/interceptor/InterceptorConfig.java +++ b/online-taxi-public/api-passenger/src/main/java/com/taxi/apipassenger/interceptor/InterceptorConfig.java @@ -23,6 +23,7 @@ public class InterceptorConfig implements WebMvcConfigurer { registry.addInterceptor(jwtInterceptor()) .addPathPatterns("/**")//拦截的路径 .excludePathPatterns("/noauthTest") + .excludePathPatterns("/user") .excludePathPatterns("/verification-code-check") .excludePathPatterns("/verification-code");//不拦截的路径 diff --git a/online-taxi-public/api-passenger/src/main/java/com/taxi/apipassenger/interceptor/JwtInterceptor.java b/online-taxi-public/api-passenger/src/main/java/com/taxi/apipassenger/interceptor/JwtInterceptor.java index 134d51d..0ac081f 100644 --- a/online-taxi-public/api-passenger/src/main/java/com/taxi/apipassenger/interceptor/JwtInterceptor.java +++ b/online-taxi-public/api-passenger/src/main/java/com/taxi/apipassenger/interceptor/JwtInterceptor.java @@ -1,6 +1,7 @@ package com.taxi.apipassenger.interceptor; import com.auth0.jwt.exceptions.TokenExpiredException; +import com.internal.contant.TokenConstant; import com.internal.dto.ResponseResult; import com.internal.dto.TokenResult; import com.internal.util.JwtUtils; @@ -48,7 +49,7 @@ public class JwtInterceptor implements HandlerInterceptor { //拼接tokenKey String phone = tokenResult.getPassengerPhone(); String identity = tokenResult.getIdentity(); - String tokenKey = RedisPrefixUtils.getTokenPrefixKey(phone,identity); + String tokenKey = RedisPrefixUtils.getTokenPrefixKey(phone,identity, TokenConstant.ACCESS_TOKEN_TYPE); //从redis中取出token String redisToke = stringRedisTemplate.opsForValue().get(tokenKey); if(StringUtils.isBlank(redisToke)){ diff --git a/online-taxi-public/api-passenger/src/main/java/com/taxi/apipassenger/service/VerificationCodeService.java b/online-taxi-public/api-passenger/src/main/java/com/taxi/apipassenger/service/VerificationCodeService.java index d1ce1e9..cda9a3e 100644 --- a/online-taxi-public/api-passenger/src/main/java/com/taxi/apipassenger/service/VerificationCodeService.java +++ b/online-taxi-public/api-passenger/src/main/java/com/taxi/apipassenger/service/VerificationCodeService.java @@ -2,6 +2,7 @@ package com.taxi.apipassenger.service; import com.internal.contant.CommonStatusEnum; import com.internal.contant.IdentityConstant; +import com.internal.contant.TokenConstant; import com.internal.dto.ResponseResult; import com.internal.request.VerificationCodeDTO; import com.internal.response.CheckCodeResponse; @@ -68,16 +69,23 @@ public class VerificationCodeService { verificationCodeDTO.setPassengerPhone(passenegerPhone); servicePassengerUserClient.loginOrReg(verificationCodeDTO); //四、颁发令牌 - String token = JwtUtils.generatorToken(passenegerPhone, - IdentityConstant.PASSENGER_IDENTITY); + String accessToken = JwtUtils.generatorToken(passenegerPhone, + IdentityConstant.PASSENGER_IDENTITY, TokenConstant.ACCESS_TOKEN_TYPE); + String refreshToken = JwtUtils.generatorToken(passenegerPhone, + IdentityConstant.PASSENGER_IDENTITY,TokenConstant.REFRESH_TOKEN_TYPE); - //将token存入redis - String tokenKey = RedisPrefixUtils.getTokenPrefixKey(passenegerPhone, - IdentityConstant.PASSENGER_IDENTITY); - stringRedisTemplate.opsForValue().set(tokenKey,token,30,TimeUnit.DAYS); + //将accesstoken存入redis + String accessTokenKey = RedisPrefixUtils.getTokenPrefixKey(passenegerPhone, + IdentityConstant.PASSENGER_IDENTITY,TokenConstant.ACCESS_TOKEN_TYPE); + stringRedisTemplate.opsForValue().set(accessTokenKey,accessToken,30,TimeUnit.DAYS); + //将refreshToken存入redis + String refreshTokenKey = RedisPrefixUtils.getTokenPrefixKey(passenegerPhone, + IdentityConstant.PASSENGER_IDENTITY,TokenConstant.REFRESH_TOKEN_TYPE); + stringRedisTemplate.opsForValue().set(refreshTokenKey,refreshToken,31,TimeUnit.DAYS); CheckCodeResponse checkCodeResponse = new CheckCodeResponse(); - checkCodeResponse.setToken(token); + checkCodeResponse.setAccessToken(accessToken); + checkCodeResponse.setRefreshToken(refreshToken); return ResponseResult.success(checkCodeResponse); } } else { diff --git a/online-taxi-public/api-passenger/target/classes/com/taxi/apipassenger/service/VerificationCodeService.class b/online-taxi-public/api-passenger/target/classes/com/taxi/apipassenger/service/VerificationCodeService.class index dd3782e..4d0d81c 100644 Binary files a/online-taxi-public/api-passenger/target/classes/com/taxi/apipassenger/service/VerificationCodeService.class and b/online-taxi-public/api-passenger/target/classes/com/taxi/apipassenger/service/VerificationCodeService.class differ diff --git a/online-taxi-public/internal-common/src/main/java/com/internal/contant/IdentityConstant.java b/online-taxi-public/internal-common/src/main/java/com/internal/contant/IdentityConstant.java index 35261f2..0b84e00 100644 --- a/online-taxi-public/internal-common/src/main/java/com/internal/contant/IdentityConstant.java +++ b/online-taxi-public/internal-common/src/main/java/com/internal/contant/IdentityConstant.java @@ -11,4 +11,5 @@ public class IdentityConstant { public static final String PASSENGER_IDENTITY = "1"; public static final String DRIVER_IDENTITY = "2"; + } diff --git a/online-taxi-public/internal-common/src/main/java/com/internal/contant/TokenConstant.java b/online-taxi-public/internal-common/src/main/java/com/internal/contant/TokenConstant.java new file mode 100644 index 0000000..5a81dc1 --- /dev/null +++ b/online-taxi-public/internal-common/src/main/java/com/internal/contant/TokenConstant.java @@ -0,0 +1,15 @@ +package com.internal.contant; + +/** + * TOKEN标识 + */ +public class TokenConstant { + + /** + * 乘客 + */ + public static final String ACCESS_TOKEN_TYPE = "accessToken"; + + public static final String REFRESH_TOKEN_TYPE = "refreshToken"; + +} diff --git a/online-taxi-public/internal-common/src/main/java/com/internal/response/CheckCodeResponse.java b/online-taxi-public/internal-common/src/main/java/com/internal/response/CheckCodeResponse.java index 933d9df..24b324e 100644 --- a/online-taxi-public/internal-common/src/main/java/com/internal/response/CheckCodeResponse.java +++ b/online-taxi-public/internal-common/src/main/java/com/internal/response/CheckCodeResponse.java @@ -6,6 +6,7 @@ import lombok.Data; public class CheckCodeResponse { - private String token; + private String accessToken; + private String refreshToken; } diff --git a/online-taxi-public/internal-common/src/main/java/com/internal/util/JwtUtils.java b/online-taxi-public/internal-common/src/main/java/com/internal/util/JwtUtils.java index e715eb0..1325896 100644 --- a/online-taxi-public/internal-common/src/main/java/com/internal/util/JwtUtils.java +++ b/online-taxi-public/internal-common/src/main/java/com/internal/util/JwtUtils.java @@ -20,11 +20,14 @@ public class JwtUtils { private static final String JWT_KEY_IDENTITY = "identity"; + private static final String JWT_TOKEN_TYPE = "tokenType"; + //生成token - public static String generatorToken(String passengerPhone,String identity) { + public static String generatorToken(String passengerPhone,String identity,String tokenType) { Map map = new HashMap<>(); map.put(JWT_KEY_PHONE,passengerPhone); map.put(JWT_KEY_IDENTITY,identity); + map.put(JWT_TOKEN_TYPE,tokenType); //token过期时间 Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.DATE, 1); @@ -47,7 +50,7 @@ public class JwtUtils { // Map map = new HashMap<>(); // map.put("name", "zhang san"); // map.put("age", "19"); - String s = generatorToken("1312312312","1"); + String s = generatorToken("1312312312","1","accessToken"); System.out.println("生成的token: " + s); TokenResult tokenResult = parseToken(s); System.out.println("解析Token:" + tokenResult.getIdentity()); diff --git a/online-taxi-public/internal-common/src/main/java/com/internal/util/RedisPrefixUtils.java b/online-taxi-public/internal-common/src/main/java/com/internal/util/RedisPrefixUtils.java index 373d4c4..76630ac 100644 --- a/online-taxi-public/internal-common/src/main/java/com/internal/util/RedisPrefixUtils.java +++ b/online-taxi-public/internal-common/src/main/java/com/internal/util/RedisPrefixUtils.java @@ -12,8 +12,8 @@ public class RedisPrefixUtils { * @param identity * @return */ - public static String getTokenPrefixKey(String passenegerPhone, String identity) { - return ApiPassengerConstant.TOKEN_PREFIX + passenegerPhone + "-" + identity; + public static String getTokenPrefixKey(String passenegerPhone, String identity,String tokenType) { + return ApiPassengerConstant.TOKEN_PREFIX + passenegerPhone + "-" + identity+ "-" + tokenType; }