From 1162929081d529f1c9f49c893fcb5c152de1b43d Mon Sep 17 00:00:00 2001 From: SeungWoo Ryu Date: Mon, 12 Jan 2026 04:12:14 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EC=9D=B4=EB=A9=94=EC=9D=BC=20=EC=9D=B8?= =?UTF-8?q?=EC=A6=9D=20=EC=BD=94=EB=93=9C=20=EA=B2=80=EC=A6=9D=20=ED=9B=84?= =?UTF-8?q?=20=EB=A6=AC=EB=94=94=EB=A0=89=EC=85=98=20=EA=B8=B0=EB=8A=A5=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - verifyEmailCode 메서드를 수정하여 이메일 인증 후 성공 및 실패 시 각각 다른 URL로 리디렉션하도록 구현 - UserException 발생 시 에러 메시지를 포함한 실패 리디렉션 추가 - HttpServletResponse를 사용하여 클라이언트에게 직접 리디렉션 응답 전송 --- .../usermanagement/UserVerifyController.java | 41 +++++++++++++++---- 1 file changed, 34 insertions(+), 7 deletions(-) diff --git a/src/main/java/org/ezcode/codetest/presentation/usermanagement/UserVerifyController.java b/src/main/java/org/ezcode/codetest/presentation/usermanagement/UserVerifyController.java index 89e94a09..87644df6 100644 --- a/src/main/java/org/ezcode/codetest/presentation/usermanagement/UserVerifyController.java +++ b/src/main/java/org/ezcode/codetest/presentation/usermanagement/UserVerifyController.java @@ -1,17 +1,15 @@ package org.ezcode.codetest.presentation.usermanagement; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.http.HttpHeaders; import org.ezcode.codetest.application.usermanagement.auth.dto.request.FindPasswordRequest; import org.ezcode.codetest.application.usermanagement.user.dto.request.ResetPasswordRequest; import org.ezcode.codetest.application.usermanagement.auth.dto.request.SendEmailRequest; import org.ezcode.codetest.application.usermanagement.auth.dto.response.FindPasswordResponse; import org.ezcode.codetest.application.usermanagement.auth.dto.response.SendEmailResponse; -import org.ezcode.codetest.application.usermanagement.auth.dto.response.VerifyEmailCodeResponse; import org.ezcode.codetest.application.usermanagement.auth.service.AuthService; import org.ezcode.codetest.application.usermanagement.user.dto.response.ChangeUserPasswordResponse; import org.ezcode.codetest.application.usermanagement.user.dto.response.VerifyFindPasswordResponse; import org.ezcode.codetest.domain.user.model.entity.AuthUser; +import org.ezcode.codetest.domain.user.exception.UserException; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.security.core.annotation.AuthenticationPrincipal; @@ -21,13 +19,19 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.util.UriComponentsBuilder; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import java.io.IOException; +import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; + @Slf4j @RestController @RequiredArgsConstructor @@ -48,11 +52,34 @@ public ResponseEntity sendMailCode( //이메일에서 버튼 클릭하면 자동으로 연결 @Operation(summary = "이메일 코드 입력 및 인증", description = "이메일로 받은 코드를 입력하여 이메일 인증된 회원으로 전환합니다") @GetMapping("/auth/verify") - public ResponseEntity verifyEmailCode( + public void verifyEmailCode( @RequestParam String email, - @RequestParam String key - ){ - return ResponseEntity.status(HttpStatus.OK).body(authService.verifyEmailCode(email, key)); + @RequestParam String key, + HttpServletResponse response + ) throws IOException { + try { + authService.verifyEmailCode(email, key); + + // 성공 시 프론트엔드로 리디렉션 + String redirectUrl = UriComponentsBuilder + .fromUriString("https://ezcode.my/email-verify-success") + .queryParam("status", "success") + .build() + .toUriString(); + + response.sendRedirect(redirectUrl); + } catch (UserException e) { + // 실패 시 프론트엔드로 리디렉션 (에러 메시지 포함) + String errorMessage = URLEncoder.encode(e.getMessage(), StandardCharsets.UTF_8); + String redirectUrl = UriComponentsBuilder + .fromUriString("https://ezcode.my/email-verify-failure") + .queryParam("status", "failure") + .queryParam("message", errorMessage) + .build() + .toUriString(); + + response.sendRedirect(redirectUrl); + } }