diff --git a/backend/src/main/java/com/techeer/backend/api/user/controller/UserController.java b/backend/src/main/java/com/techeer/backend/api/user/controller/UserController.java index c6b8a7b4..c88dbd78 100644 --- a/backend/src/main/java/com/techeer/backend/api/user/controller/UserController.java +++ b/backend/src/main/java/com/techeer/backend/api/user/controller/UserController.java @@ -69,4 +69,11 @@ public CommonResponse reGenerateAccessToken(@CookieValue(value = "refreshT return CommonResponse.of(SuccessCode.TOKEN_REISSUE_OK, null); } + + @Operation(summary = "모의 유저 데이터 생성") + @PostMapping("/mock/signup") + public CommonResponse mockSignup(@RequestParam(name = "id") String id) { + String accessToken = userService.mockSignup(id); + return CommonResponse.of(SuccessCode.OK, accessToken); + } } diff --git a/backend/src/main/java/com/techeer/backend/api/user/service/UserService.java b/backend/src/main/java/com/techeer/backend/api/user/service/UserService.java index ad88f439..0b7e8742 100644 --- a/backend/src/main/java/com/techeer/backend/api/user/service/UserService.java +++ b/backend/src/main/java/com/techeer/backend/api/user/service/UserService.java @@ -60,7 +60,6 @@ public User getLoginUser() { return userRepository.findByEmail(userDetails.getUsername()) .orElseThrow(() -> new BusinessException(ErrorCode.USER_NOT_FOUND)); } - @Transactional public JwtToken reissueAccessToken(String refreshToken) { @@ -68,11 +67,26 @@ public JwtToken reissueAccessToken(String refreshToken) { if (!jwtService.isRefreshTokenValid(refreshToken)) { return null; } - User user = this.getLoginUser(); return JwtToken.builder() .accessToken(jwtService.createAccessToken(user.getEmail())) .refreshToken(refreshToken) .build(); } + + public String mockSignup(String id) { + String accessToken = jwtService.createAccessToken(id); + String refreshToken = jwtService.createRefreshToken(); + + User user = User.builder() + .refreshToken(refreshToken) + .email(id) + .username("mock") + .role(Role.REGULAR) + .socialType(SocialType.GOOGLE) + .build(); + userRepository.save(user); + + return accessToken; + } } diff --git a/backend/src/main/java/com/techeer/backend/global/jwt/service/JwtService.java b/backend/src/main/java/com/techeer/backend/global/jwt/service/JwtService.java index c7a57ddb..f313d457 100644 --- a/backend/src/main/java/com/techeer/backend/global/jwt/service/JwtService.java +++ b/backend/src/main/java/com/techeer/backend/global/jwt/service/JwtService.java @@ -13,6 +13,7 @@ import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import java.security.Key; +import java.time.Duration; import java.util.Date; import java.util.Optional; import lombok.Getter; @@ -20,6 +21,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.security.oauth2.jwt.JwtException; import org.springframework.stereotype.Service; @Service @@ -50,6 +52,7 @@ public class JwtService { private final UserRepository userRepository; private final RedisTemplate redisTemplate; + private final RedisService redisService; private Key key; diff --git a/backend/src/main/java/com/techeer/backend/global/oauth/service/CustomOAuth2UserService.java b/backend/src/main/java/com/techeer/backend/global/oauth/service/CustomOAuth2UserService.java index 44052814..c06814ef 100644 --- a/backend/src/main/java/com/techeer/backend/global/oauth/service/CustomOAuth2UserService.java +++ b/backend/src/main/java/com/techeer/backend/global/oauth/service/CustomOAuth2UserService.java @@ -5,6 +5,7 @@ import com.techeer.backend.api.user.service.UserService; import com.techeer.backend.global.error.ErrorCode; import com.techeer.backend.global.error.exception.BusinessException; +import com.techeer.backend.global.oauth.EmailFetcher.GitHubEmailFetcher; import com.techeer.backend.global.oauth.OAuthAttributes; import com.techeer.backend.global.oauth.oauth2user.CustomOAuth2User; import java.util.Collections;