diff --git a/src/main/java/org/runimo/runimo/auth/service/SignUpUsecaseImpl.java b/src/main/java/org/runimo/runimo/auth/service/SignUpUsecaseImpl.java index ee9f2732..c23779e8 100644 --- a/src/main/java/org/runimo/runimo/auth/service/SignUpUsecaseImpl.java +++ b/src/main/java/org/runimo/runimo/auth/service/SignUpUsecaseImpl.java @@ -8,6 +8,7 @@ import org.runimo.runimo.auth.jwt.SignupTokenPayload; import org.runimo.runimo.auth.repository.SignupTokenRepository; import org.runimo.runimo.auth.service.dto.SignupUserResponse; +import org.runimo.runimo.auth.service.dto.TokenPair; import org.runimo.runimo.auth.service.dto.UserSignupCommand; import org.runimo.runimo.user.domain.AppleUserToken; import org.runimo.runimo.user.domain.SocialProvider; @@ -28,6 +29,7 @@ public class SignUpUsecaseImpl implements SignUpUsecase { private final SignupTokenRepository signupTokenRepository; private final AppleUserTokenRepository appleUserTokenRepository; private final JwtResolver jwtResolver; + private final TokenRefreshService tokenRefreshService; @Override @Transactional @@ -44,7 +46,12 @@ public SignupUserResponse register(UserSignupCommand command) { if (payload.socialProvider() == SocialProvider.APPLE) { createAppleUserToken(savedUser.getId(), signupToken); } - return new SignupUserResponse(savedUser, jwtTokenFactory.generateTokenPair(savedUser)); + TokenPair tokenPair = jwtTokenFactory.generateTokenPair(savedUser); + tokenRefreshService.saveRefreshToken( + savedUser.getPublicId(), + tokenPair.refreshToken() + ); + return new SignupUserResponse(savedUser, tokenPair); } private SignupToken findUnExpiredSignupToken(String token) { diff --git a/src/main/java/org/runimo/runimo/auth/service/TokenRefreshService.java b/src/main/java/org/runimo/runimo/auth/service/TokenRefreshService.java index 5ec81f43..a2651394 100644 --- a/src/main/java/org/runimo/runimo/auth/service/TokenRefreshService.java +++ b/src/main/java/org/runimo/runimo/auth/service/TokenRefreshService.java @@ -21,6 +21,10 @@ public class TokenRefreshService { @Value("${jwt.refresh.expiration}") private Long refreshTokenExpiry; + public void saveRefreshToken(String userId, String refreshToken) { + refreshTokenCache.put(userId, refreshToken, Duration.ofMillis(refreshTokenExpiry)); + } + public TokenPair refreshAccessToken(String refreshToken) { String userId; try {