Skip to content

Commit e46f2e6

Browse files
authored
6.2차 배포
2 parents 6e9e580 + b38a9ae commit e46f2e6

3 files changed

Lines changed: 62 additions & 17 deletions

File tree

src/main/java/umc/codeplay/controller/OAuthController.java

Lines changed: 36 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,13 @@
1717
import io.swagger.v3.oas.annotations.Hidden;
1818
import io.swagger.v3.oas.annotations.Operation;
1919
import io.swagger.v3.oas.annotations.tags.Tag;
20-
import umc.codeplay.apiPayLoad.ApiResponse;
2120
import umc.codeplay.apiPayLoad.code.status.ErrorStatus;
2221
import umc.codeplay.apiPayLoad.exception.handler.GeneralHandler;
2322
import umc.codeplay.config.properties.BaseOAuthProperties;
2423
import umc.codeplay.config.properties.GoogleOAuthProperties;
2524
import umc.codeplay.config.properties.KakaoOAuthProperties;
2625
import umc.codeplay.domain.Member;
2726
import umc.codeplay.domain.enums.SocialStatus;
28-
import umc.codeplay.dto.MemberResponseDTO;
2927
import umc.codeplay.jwt.JwtUtil;
3028
import umc.codeplay.service.MemberService;
3129

@@ -65,7 +63,7 @@ public RedirectView redirectToOAuth(@PathVariable("provider") String provider) {
6563

6664
@Hidden
6765
@GetMapping("/callback/{provider}")
68-
public ApiResponse<MemberResponseDTO.LoginResultDTO> OAuthCallback(
66+
public ResponseEntity<String> OAuthCallback(
6967
@RequestParam("code") String code, @PathVariable("provider") String provider) {
7068
BaseOAuthProperties properties =
7169
switch (provider) {
@@ -110,13 +108,42 @@ public ApiResponse<MemberResponseDTO.LoginResultDTO> OAuthCallback(
110108
String serviceAccessToken = jwtUtil.generateToken(email, authorities);
111109
String serviceRefreshToken = jwtUtil.generateRefreshToken(email, authorities);
112110

111+
String html = getString(serviceAccessToken, serviceRefreshToken, email);
112+
113+
return ResponseEntity.ok().contentType(MediaType.TEXT_HTML).body(html);
114+
113115
// (6) 최종적으로 JWT(액세스/리프레시)를 프론트에 응답
114-
return ApiResponse.onSuccess(
115-
MemberResponseDTO.LoginResultDTO.builder()
116-
.email(email)
117-
.token(serviceAccessToken)
118-
.refreshToken(serviceRefreshToken)
119-
.build());
116+
// return ApiResponse.onSuccess(
117+
// MemberResponseDTO.LoginResultDTO.builder()
118+
// .email(email)
119+
// .token(serviceAccessToken)
120+
// .refreshToken(serviceRefreshToken)
121+
// .build());
122+
}
123+
124+
String targetOrigin = "https://code-play-fe.vercel.app";
125+
126+
private String getString(String serviceAccessToken, String serviceRefreshToken, String email) {
127+
String jsonData =
128+
String.format(
129+
"{ \"accessToken\": \"%s\", \"refreshToken\": \"%s\", \"email\": \"%s\" }",
130+
serviceAccessToken, serviceRefreshToken, email);
131+
132+
return """
133+
<!DOCTYPE html>
134+
<html>
135+
<body>
136+
<script>
137+
(function() {
138+
var data = %s;
139+
window.opener.postMessage(data, "%s");
140+
window.close();
141+
})();
142+
</script>
143+
</body>
144+
</html>
145+
"""
146+
.formatted(jsonData, targetOrigin);
120147
}
121148

122149
private Map<String, Object> requestOAuthToken(String code, BaseOAuthProperties properties) {

src/main/resources/application-prod.yml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,19 @@ spring:
3636
access-key: ${AWS_ACCESS_KEY_ID}
3737
secret-key: ${AWS_SECRET_ACCESS_KEY}
3838

39+
mail:
40+
host: smtp.gmail.com
41+
port: 587
42+
username: ${SPRING_MAIL_USERNAME} # 이메일 계정
43+
password: ${SPRING_MAIL_PASSWORD}
44+
protocol: smtp
45+
properties:
46+
mail:
47+
smtp:
48+
auth: true
49+
starttls:
50+
enable: true
51+
3952
s3:
4053
bucket: ${S3_BUCKET}
4154

src/main/resources/application.yml

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,6 @@
11
spring:
22
application:
33
name: codeplay
4-
mail:
5-
host: smtp.gmail.com
6-
port: 587
7-
username: dummy-email@gmail.com # 이메일 계정
8-
password: dummy-password
9-
protocol: smt
10-
tls: true
11-
124

135
config:
146
import:
@@ -36,6 +28,19 @@ spring:
3628
use_sql_comments: true
3729
default_batch_fetch_size: 1000 # 배치 크기 설정 (성능 최적화)
3830

31+
mail:
32+
host: smtp.gmail.com
33+
port: 587
34+
username: ${SPRING_MAIL_USERNAME} # 이메일 계정
35+
password: ${SPRING_MAIL_PASSWORD}
36+
protocol: smtp
37+
properties:
38+
mail:
39+
smtp:
40+
auth: true
41+
starttls:
42+
enable: true
43+
3944
cloud:
4045
aws:
4146
region:

0 commit comments

Comments
 (0)