From 9f018298a5b866f9705c7831df47c3ab81d1f94b Mon Sep 17 00:00:00 2001 From: imscow11253 Date: Sun, 2 Feb 2025 21:37:11 +0900 Subject: [PATCH] =?UTF-8?q?hotfix=20:=20=EB=B9=84=EB=A1=9C=EA=B7=B8?= =?UTF-8?q?=EC=9D=B8=20=EB=A6=AC=ED=94=84=EB=A0=88=EC=89=AC=20=ED=86=A0?= =?UTF-8?q?=ED=81=B0=20=EB=B0=9C=EA=B8=89=20=EC=98=A4=EB=A5=98=20=ED=95=B4?= =?UTF-8?q?=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../application/auth/service/AuthService.java | 9 +++++++++ .../neighbors/tohero/common/jwt/JwtProvider.java | 14 +++++++++----- 2 files changed, 18 insertions(+), 5 deletions(-) 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) {