Skip to content

Commit 395da4b

Browse files
authored
[FIX] 토큰이 db에서 업데이트가 안 되는 문제 수정
[FIX] 토큰이 db에서 업데이트가 안 되는 문제 수정
2 parents 883f380 + 80a506d commit 395da4b

File tree

2 files changed

+15
-2
lines changed

2 files changed

+15
-2
lines changed

gdgoc/src/main/java/inha/gdgoc/domain/auth/service/GoogleOAuthService.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,8 +90,7 @@ public Map<String, Object> processOAuthLogin(String code, HttpServletResponse re
9090

9191
// TODO 시간 바꾸기
9292
String jwtAccessToken = tokenProvider.generateGoogleLoginToken(user, Duration.ofSeconds(5));
93-
String refreshToken = tokenProvider.generateGoogleLoginToken(user, Duration.ofSeconds(20));
94-
refreshTokenService.saveRefreshToken(refreshToken, user, Duration.ofSeconds(20));
93+
String refreshToken = refreshTokenService.getOrCreateRefreshToken(user, Duration.ofSeconds(20));
9594

9695
// ResponseCookie 객체 생성
9796
ResponseCookie responseCookie = ResponseCookie.from("refresh_token", refreshToken)

gdgoc/src/main/java/inha/gdgoc/domain/auth/service/RefreshTokenService.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,20 @@ public class RefreshTokenService {
2222
private final TokenProvider tokenProvider;
2323
private final RefreshTokenRepository refreshTokenRepository;
2424

25+
public String getOrCreateRefreshToken(User user, Duration duration) {
26+
Optional<RefreshToken> existingToken = refreshTokenRepository.findByUser(user);
27+
28+
// 유효한 토큰이 있으면 재사용
29+
if (existingToken.isPresent() && existingToken.get().getExpiryDate().isAfter(LocalDateTime.now())) {
30+
return existingToken.get().getToken();
31+
}
32+
33+
// 없거나 만료되었으면 새로 생성
34+
String newToken = tokenProvider.generateGoogleLoginToken(user, duration);
35+
saveRefreshToken(newToken, user, duration);
36+
return newToken;
37+
}
38+
2539
// 로그인 시 refresh 토큰 저장
2640
public void saveRefreshToken(String refreshToken, User user, Duration expiredAt) {
2741
LocalDateTime expiryDate = LocalDateTime.now().plus(expiredAt);

0 commit comments

Comments
 (0)