From 19bc992a12244f22e8331afe2336f9f09c4948c7 Mon Sep 17 00:00:00 2001 From: leejinuk Date: Mon, 7 Apr 2025 23:39:09 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=20=EB=A1=9C=EA=B7=B8=EC=9D=B8=20?= =?UTF-8?q?=EC=8B=9C=20String=20=EC=A0=84=EB=8B=AC=20->=20DTO=EB=A1=9C=20?= =?UTF-8?q?=EC=A0=84=EB=8B=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../security/JwtAuthenticationFilter.java | 22 ++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/project/webshopproject/security/JwtAuthenticationFilter.java b/src/main/java/com/project/webshopproject/security/JwtAuthenticationFilter.java index 803cfd4..c6fc01b 100644 --- a/src/main/java/com/project/webshopproject/security/JwtAuthenticationFilter.java +++ b/src/main/java/com/project/webshopproject/security/JwtAuthenticationFilter.java @@ -1,6 +1,7 @@ package com.project.webshopproject.security; import com.fasterxml.jackson.databind.ObjectMapper; +import com.project.webshopproject.common.RestApiResponseDto; import com.project.webshopproject.user.dto.UserLoginRequestDto; import com.project.webshopproject.user.entity.User; import com.project.webshopproject.user.entity.UserStatus; @@ -10,6 +11,8 @@ import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; +import java.util.HashMap; +import java.util.Map; import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpStatus; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; @@ -63,7 +66,9 @@ protected void successfulAuthentication(HttpServletRequest request, HttpServletResponse response, FilterChain chain, Authentication authResult) throws IOException, ServletException { log.info("로그인 성공 및 JWT 생성"); - String email = ((UserDetailsImpl) authResult.getPrincipal()).getEmail(); + + UserDetailsImpl userDetails = (UserDetailsImpl) authResult.getPrincipal(); + String email = userDetails.getEmail(); // 토큰 생성 String accessToken = jwtProvider.createAccessToken(email); @@ -75,9 +80,20 @@ protected void successfulAuthentication(HttpServletRequest request, // jwtProvider.addToken(accessToken, refreshToken, // jwtProvider.extractExpirationMillis(jwtProvider.substringToken(refreshToken))); - // 로그인 성공 메세지 반환 + // 사용자 정보를 담을 DTO 생성 (이 부분은 실제 사용자 정보 모델에 맞게 조정 필요) + Map userData = new HashMap<>(); + userData.put("username", userDetails.getUser().getUsername()); // UserDetailsImpl에서 가져오거나 다른 방법으로 조회 + userData.put("email", email); + userData.put("nickname", userDetails.getUser().getNickname()); // UserDetailsImpl에서 가져오거나 다른 방법으로 조회 + + // RestApiResponseDto 생성 + RestApiResponseDto> responseDto = + RestApiResponseDto.of("로그인이 되었습니다.", userData); + + // JSON 응답 반환 + response.setStatus(HttpStatus.OK.value()); response.setContentType("application/json; charset=UTF-8"); - response.getWriter().write(new ObjectMapper().writeValueAsString("로그인 성공!")); + response.getWriter().write(new ObjectMapper().writeValueAsString(responseDto)); } @Override