diff --git a/src/main/java/umc/codeplay/controller/OAuthController.java b/src/main/java/umc/codeplay/controller/OAuthController.java index 2d3acbb..5968cc1 100644 --- a/src/main/java/umc/codeplay/controller/OAuthController.java +++ b/src/main/java/umc/codeplay/controller/OAuthController.java @@ -17,7 +17,6 @@ import io.swagger.v3.oas.annotations.Hidden; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; -import umc.codeplay.apiPayLoad.ApiResponse; import umc.codeplay.apiPayLoad.code.status.ErrorStatus; import umc.codeplay.apiPayLoad.exception.handler.GeneralHandler; import umc.codeplay.config.properties.BaseOAuthProperties; @@ -25,7 +24,6 @@ import umc.codeplay.config.properties.KakaoOAuthProperties; import umc.codeplay.domain.Member; import umc.codeplay.domain.enums.SocialStatus; -import umc.codeplay.dto.MemberResponseDTO; import umc.codeplay.jwt.JwtUtil; import umc.codeplay.service.MemberService; @@ -65,7 +63,7 @@ public RedirectView redirectToOAuth(@PathVariable("provider") String provider) { @Hidden @GetMapping("/callback/{provider}") - public ApiResponse OAuthCallback( + public ResponseEntity OAuthCallback( @RequestParam("code") String code, @PathVariable("provider") String provider) { BaseOAuthProperties properties = switch (provider) { @@ -110,13 +108,42 @@ public ApiResponse OAuthCallback( String serviceAccessToken = jwtUtil.generateToken(email, authorities); String serviceRefreshToken = jwtUtil.generateRefreshToken(email, authorities); + String html = getString(serviceAccessToken, serviceRefreshToken, email); + + return ResponseEntity.ok().contentType(MediaType.TEXT_HTML).body(html); + // (6) 최종적으로 JWT(액세스/리프레시)를 프론트에 응답 - return ApiResponse.onSuccess( - MemberResponseDTO.LoginResultDTO.builder() - .email(email) - .token(serviceAccessToken) - .refreshToken(serviceRefreshToken) - .build()); + // return ApiResponse.onSuccess( + // MemberResponseDTO.LoginResultDTO.builder() + // .email(email) + // .token(serviceAccessToken) + // .refreshToken(serviceRefreshToken) + // .build()); + } + + String targetOrigin = "https://code-play-fe.vercel.app"; + + private String getString(String serviceAccessToken, String serviceRefreshToken, String email) { + String jsonData = + String.format( + "{ \"accessToken\": \"%s\", \"refreshToken\": \"%s\", \"email\": \"%s\" }", + serviceAccessToken, serviceRefreshToken, email); + + return """ + + + + + + + """ + .formatted(jsonData, targetOrigin); } private Map requestOAuthToken(String code, BaseOAuthProperties properties) { diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml index bccfc04..bd0ceff 100644 --- a/src/main/resources/application-prod.yml +++ b/src/main/resources/application-prod.yml @@ -36,6 +36,19 @@ spring: access-key: ${AWS_ACCESS_KEY_ID} secret-key: ${AWS_SECRET_ACCESS_KEY} + mail: + host: smtp.gmail.com + port: 587 + username: ${SPRING_MAIL_USERNAME} # 이메일 계정 + password: ${SPRING_MAIL_PASSWORD} + protocol: smtp + properties: + mail: + smtp: + auth: true + starttls: + enable: true + s3: bucket: ${S3_BUCKET} diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index b8d907a..90d1a7d 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -1,14 +1,6 @@ spring: application: name: codeplay - mail: - host: smtp.gmail.com - port: 587 - username: dummy-email@gmail.com # 이메일 계정 - password: dummy-password - protocol: smt - tls: true - config: import: @@ -36,6 +28,19 @@ spring: use_sql_comments: true default_batch_fetch_size: 1000 # 배치 크기 설정 (성능 최적화) + mail: + host: smtp.gmail.com + port: 587 + username: ${SPRING_MAIL_USERNAME} # 이메일 계정 + password: ${SPRING_MAIL_PASSWORD} + protocol: smtp + properties: + mail: + smtp: + auth: true + starttls: + enable: true + cloud: aws: region: