diff --git a/src/main/java/com/neighbors/tohero/application/auth/service/AuthService.java b/src/main/java/com/neighbors/tohero/application/auth/service/AuthService.java index e1c6f1b..099d194 100644 --- a/src/main/java/com/neighbors/tohero/application/auth/service/AuthService.java +++ b/src/main/java/com/neighbors/tohero/application/auth/service/AuthService.java @@ -22,6 +22,15 @@ public class AuthService { public BaseResponse reissueToken(String refreshToken){ //TODO : Redis에 refreshToken 확인 작업 jwtProvider.isExpiredToken(refreshToken); + if(jwtProvider.isGuestToken(refreshToken)){ + String nickname = jwtProvider.getNickname(refreshToken); + AuthTokens authTokens = jwtProvider.createToken(JwtUserDetails.makeGuestJwtDetails(nickname)); + return new BaseResponse( + BaseResponseStatus.OK, + BaseResponseMessage.토큰_재발급이_성공했습니다.getMessage(), + new ReissueTokenResponse(authTokens) + ); + } long userId = jwtProvider.getId(refreshToken); User user = getUser.getUserById(userId); AuthTokens authTokens = jwtProvider.createToken(JwtUserDetails.from(user)); diff --git a/src/main/java/com/neighbors/tohero/common/jwt/JwtProvider.java b/src/main/java/com/neighbors/tohero/common/jwt/JwtProvider.java index 3a4d8a9..46cc7a1 100644 --- a/src/main/java/com/neighbors/tohero/common/jwt/JwtProvider.java +++ b/src/main/java/com/neighbors/tohero/common/jwt/JwtProvider.java @@ -107,11 +107,15 @@ public boolean isExpiredToken(String token) throws JwtInvalidTokenException { } public String getNickname(String token) { - return Jwts.parserBuilder() - .setSigningKey(JWT_SECRET_KEY).build() - .parseClaimsJws(token) - .getBody() - .getSubject(); + Claims claims = getBody(token); + + return String.valueOf(claims.getSubject()); + } + + public boolean isGuestToken(String token) { + Claims claims = getBody(token); + + return Role.valueOf(claims.get("role").toString()) == Role.GUEST; } public void loggingToken(String token) {