Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -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;
Expand Down Expand Up @@ -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);
Expand All @@ -75,9 +80,20 @@ protected void successfulAuthentication(HttpServletRequest request,
// jwtProvider.addToken(accessToken, refreshToken,
// jwtProvider.extractExpirationMillis(jwtProvider.substringToken(refreshToken)));

// 로그인 성공 메세지 반환
// 사용자 정보를 담을 DTO 생성 (이 부분은 실제 사용자 정보 모델에 맞게 조정 필요)
Map<String, Object> userData = new HashMap<>();
userData.put("username", userDetails.getUser().getUsername()); // UserDetailsImpl에서 가져오거나 다른 방법으로 조회
userData.put("email", email);
userData.put("nickname", userDetails.getUser().getNickname()); // UserDetailsImpl에서 가져오거나 다른 방법으로 조회

// RestApiResponseDto 생성
RestApiResponseDto<Map<String, Object>> 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
Expand Down