From 897bfa0e543410d5c0af417e9e6bb8e29000ee0e Mon Sep 17 00:00:00 2001 From: JunbeomKoreaUniv Date: Sat, 9 Aug 2025 19:50:17 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20User=20=ED=85=8C=EC=9D=B4=EB=B8=94?= =?UTF-8?q?=EC=97=90=20=EC=97=91=EC=84=B8=EC=8A=A4=ED=86=A0=ED=81=B0=20?= =?UTF-8?q?=EC=A0=80=EC=9E=A5=ED=95=98=EA=B2=8C=ED=95=98=EC=97=AC=20?= =?UTF-8?q?=EB=8B=A4=EC=A4=91=EB=A1=9C=EA=B7=B8=EC=9D=B8=20=EB=B0=A9?= =?UTF-8?q?=EC=A7=80=20(=EC=9E=84=EC=8B=9C=EC=B2=98=EB=A6=AC)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/devkor/ontime_back/entity/User.java | 6 ++++++ .../global/generallogin/handler/LoginSuccessHandler.java | 2 +- .../devkor/ontime_back/global/jwt/JwtTokenProvider.java | 2 ++ .../java/devkor/ontime_back/repository/UserRepository.java | 2 ++ .../db/migration/V4__add_field_accesstoken_to_user.sql | 1 + 5 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 ontime-back/src/main/resources/db/migration/V4__add_field_accesstoken_to_user.sql diff --git a/ontime-back/src/main/java/devkor/ontime_back/entity/User.java b/ontime-back/src/main/java/devkor/ontime_back/entity/User.java index 0450765..8993fcf 100644 --- a/ontime-back/src/main/java/devkor/ontime_back/entity/User.java +++ b/ontime-back/src/main/java/devkor/ontime_back/entity/User.java @@ -48,6 +48,8 @@ public class User { private String socialId; // 로그인한 소셜 타입의 식별자 값 (일반 로그인인 경우 null) + private String accessToken; // accessToken + private String refreshToken; // refreshToken private String firebaseToken; @@ -126,4 +128,8 @@ public void updateNote(String note) { public void updateFirebaseToken(String firebaseToken) { this.firebaseToken = firebaseToken; } + + public void updateAccessToken(String accessToken) { + this.accessToken = accessToken; + } } \ No newline at end of file diff --git a/ontime-back/src/main/java/devkor/ontime_back/global/generallogin/handler/LoginSuccessHandler.java b/ontime-back/src/main/java/devkor/ontime_back/global/generallogin/handler/LoginSuccessHandler.java index 24fb9dc..7b19764 100644 --- a/ontime-back/src/main/java/devkor/ontime_back/global/generallogin/handler/LoginSuccessHandler.java +++ b/ontime-back/src/main/java/devkor/ontime_back/global/generallogin/handler/LoginSuccessHandler.java @@ -39,7 +39,7 @@ public void onAuthenticationSuccess(HttpServletRequest request, HttpServletRespo // 수정된 부분: 응답 헤더에 AccessToken, RefreshToken 실어서 응답 jwtTokenProvider.sendAccessAndRefreshToken(response, accessToken, refreshToken); - // 수정된 부분: RefreshToken을 User 엔티티에 업데이트 후 저장 + user.updateAccessToken(accessToken); user.updateRefreshToken(refreshToken); userRepository.saveAndFlush(user); diff --git a/ontime-back/src/main/java/devkor/ontime_back/global/jwt/JwtTokenProvider.java b/ontime-back/src/main/java/devkor/ontime_back/global/jwt/JwtTokenProvider.java index f8a5380..6d2349b 100644 --- a/ontime-back/src/main/java/devkor/ontime_back/global/jwt/JwtTokenProvider.java +++ b/ontime-back/src/main/java/devkor/ontime_back/global/jwt/JwtTokenProvider.java @@ -166,6 +166,8 @@ public boolean isTokenValid(String token) { public boolean isAccessTokenValid(String token) { try { + userRepository.findByAccessToken(token) + .orElseThrow(() -> new InvalidAccessTokenException("유효하지 않은 엑세스 토큰입니다.")); JWT.require(Algorithm.HMAC512(secretKey)).build().verify(token); log.info("유효한 엑세스 토큰입니다."); return true; diff --git a/ontime-back/src/main/java/devkor/ontime_back/repository/UserRepository.java b/ontime-back/src/main/java/devkor/ontime_back/repository/UserRepository.java index d74d3e6..d00c55d 100644 --- a/ontime-back/src/main/java/devkor/ontime_back/repository/UserRepository.java +++ b/ontime-back/src/main/java/devkor/ontime_back/repository/UserRepository.java @@ -23,4 +23,6 @@ public interface UserRepository extends JpaRepository { @Query("SELECT u.spareTime FROM User u WHERE u.id = :id") Integer findSpareTimeById(Long id); + + Optional findByAccessToken(String token); } \ No newline at end of file diff --git a/ontime-back/src/main/resources/db/migration/V4__add_field_accesstoken_to_user.sql b/ontime-back/src/main/resources/db/migration/V4__add_field_accesstoken_to_user.sql new file mode 100644 index 0000000..134ef5f --- /dev/null +++ b/ontime-back/src/main/resources/db/migration/V4__add_field_accesstoken_to_user.sql @@ -0,0 +1 @@ +ALTER TABLE user ADD COLUMN access_token VARCHAR(255); \ No newline at end of file