diff --git a/.github/workflows/actions.yml b/.github/workflows/actions.yml index 5213cb3..e1c3968 100644 --- a/.github/workflows/actions.yml +++ b/.github/workflows/actions.yml @@ -2,7 +2,7 @@ name: ModernFarmer CI/CD on: push: - branches: ["feature_11/에러처리-추가"] + branches: ["feature_13/카카오,-구글-로그인-수정"] pull_request: branches: ["dev"] diff --git a/src/main/java/modernfarmer/server/farmususer/user/controller/AuthController.java b/src/main/java/modernfarmer/server/farmususer/user/controller/AuthController.java index bcbae14..72beb69 100644 --- a/src/main/java/modernfarmer/server/farmususer/user/controller/AuthController.java +++ b/src/main/java/modernfarmer/server/farmususer/user/controller/AuthController.java @@ -36,33 +36,6 @@ public TokenResponseDto kakaoLogin(HttpServletRequest request) { return reissueTokenResponseDto; } -// -// @DeleteMapping("/logout") -// public ResponseDto logout(HttpServletRequest request) { -// -// -// String userId = jwtTokenProvider.getUserId(request); -// -// ResponseDto logoutResponseDto = authService.logout(Long.valueOf(userId)); -// -// LOGGER.info("로그아웃 완료"); -// -// return logoutResponseDto; -// } -// -// @GetMapping(value = "/reissue-token") -// public TokenResponseDto reissueToken(HttpServletRequest request) { -// -// String userId = jwtTokenProvider.getUserId(request); -// String refreshToken = jwtTokenProvider.resolveToken(request); -// -// TokenResponseDto reissueTokenResponseDto = authService.reissueToken(refreshToken, Long.valueOf(userId)); -// -// LOGGER.info("토큰 재발급 완료"); -// -// return reissueTokenResponseDto; -// } - @PostMapping(value = "/google-login") public TokenResponseDto googleLogin(HttpServletRequest request) { diff --git a/src/main/java/modernfarmer/server/farmususer/user/dto/response/GoogleUserResponseDto.java b/src/main/java/modernfarmer/server/farmususer/user/dto/response/GoogleUserResponseDto.java index 410a17f..6ede66f 100644 --- a/src/main/java/modernfarmer/server/farmususer/user/dto/response/GoogleUserResponseDto.java +++ b/src/main/java/modernfarmer/server/farmususer/user/dto/response/GoogleUserResponseDto.java @@ -11,10 +11,6 @@ public class GoogleUserResponseDto { private String id; private String email; - private boolean verified_email; - private String name; - private String given_name; - private String family_name; private String picture; - private String locale; + private String name; } diff --git a/src/main/java/modernfarmer/server/farmususer/user/dto/response/KakaoUserResponseDto.java b/src/main/java/modernfarmer/server/farmususer/user/dto/response/KakaoUserResponseDto.java index b2d1756..cd44f2f 100644 --- a/src/main/java/modernfarmer/server/farmususer/user/dto/response/KakaoUserResponseDto.java +++ b/src/main/java/modernfarmer/server/farmususer/user/dto/response/KakaoUserResponseDto.java @@ -2,6 +2,7 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Getter; import lombok.Setter; @@ -9,6 +10,7 @@ @Getter @Builder +@AllArgsConstructor public class KakaoUserResponseDto { private long id; @@ -16,33 +18,33 @@ public class KakaoUserResponseDto { public KakaoUserResponseDto(@JsonProperty("id") long id) { this.id = id; } -// private UserProfileDTO kakao_account; -// -// -// @Setter -// @Getter -// public class UserProfileDTO { -// private boolean profileNicknameNeedsAgreement; -// private boolean profileImageNeedsAgreement; -// private ProfileData profile; -// private boolean hasEmail; -// private boolean emailNeedsAgreement; -// private boolean isEmailValid; -// private boolean isEmailVerified; -// private String email; -// -// -// -// -// @Getter -// @Setter -// public class ProfileData { -// private String nickname; -// private String thumbnailImageUrl; -// private String profileImageUrl; -// private boolean isDefaultImage; -// } -// } + private UserProfileDTO kakao_account; + + + @Setter + @Getter + public class UserProfileDTO { + private boolean profileNicknameNeedsAgreement; + private boolean profileImageNeedsAgreement; + private ProfileData profile; + private boolean hasEmail; + private boolean emailNeedsAgreement; + private boolean isEmailValid; + private boolean isEmailVerified; + private String email; + + + + + @Getter + @Setter + public class ProfileData { + private String nickname; + private String thumbnail_image_Url; + private String profile_image_url; + private boolean isDefaultImage; + } + } diff --git a/src/main/java/modernfarmer/server/farmususer/user/entity/User.java b/src/main/java/modernfarmer/server/farmususer/user/entity/User.java index 7bf3e13..5893b64 100644 --- a/src/main/java/modernfarmer/server/farmususer/user/entity/User.java +++ b/src/main/java/modernfarmer/server/farmususer/user/entity/User.java @@ -35,4 +35,12 @@ public class User { private String role; + @Size(max = 45) + @Column(name = "nickname", length = 45) + private String nickname; + + @Size(max = 255) + @Column(name = "profile_image") + private String profileImage; + } \ No newline at end of file diff --git a/src/main/java/modernfarmer/server/farmususer/user/service/AuthService.java b/src/main/java/modernfarmer/server/farmususer/user/service/AuthService.java index 20add15..5f7075a 100644 --- a/src/main/java/modernfarmer/server/farmususer/user/service/AuthService.java +++ b/src/main/java/modernfarmer/server/farmususer/user/service/AuthService.java @@ -1,5 +1,6 @@ package modernfarmer.server.farmususer.user.service; + import lombok.extern.slf4j.Slf4j; import modernfarmer.server.farmususer.user.dto.response.GoogleUserResponseDto; import modernfarmer.server.farmususer.user.dto.response.KakaoUserResponseDto; @@ -9,7 +10,6 @@ import modernfarmer.server.farmususer.user.util.JwtTokenProvider; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; -import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; import org.springframework.web.reactive.function.client.WebClient; import reactor.core.publisher.Mono; @@ -44,23 +44,18 @@ public TokenResponseDto googleLogin(String accessToken) { Mono userInfoMono = getUserGoogleInfo(accessToken); GoogleUserResponseDto userInfo = userInfoMono.block(); -// LOGGER.info(String.valueOf(userInfo.getAccount_email())); -// LOGGER.info(String.valueOf(userInfo.getProfile_nickname())); -// LOGGER.info(String.valueOf(userInfo.getProfile_image())); - -// LOGGER.info(String.valueOf(userInfo.getKakao_account().getEmail())); -// LOGGER.info(String.valueOf(userInfo.getKakao_account().getProfile().getProfileImageUrl())); -// LOGGER.info(String.valueOf(userInfo.getKakao_account().getProfile().getNickname())); Optional userData = userRepository.findByUsernumber(String.valueOf(userInfo.getId())); + log.info(String.valueOf(userInfo.getEmail())); + log.info(String.valueOf(userInfo.getPicture())); + log.info(String.valueOf(userInfo.getId())); + if(userData.isEmpty()){ user = User.builder() .usernumber(String.valueOf(userInfo.getId())) .role("USER") -// .email(userInfo.getKakao_account().getEmail()) -// .nickname(userInfo.getKakao_account().getProfile().getNickname()) -// .userProfile(userInfo.getKakao_account().getProfile().getProfileImageUrl()) + .profileImage(userInfo.getPicture()) .build(); userRepository.save(user); @@ -80,8 +75,6 @@ public TokenResponseDto googleLogin(String accessToken) { .refreshToken(refreshToken) .build(); -// redisTemplate.opsForHash().put(jwtTokenProvider.createRereshToken(),"userId", String.valueOf(userLoginData.get().getId())); -// redisTemplate.opsForHash().put(jwtTokenProvider.createRereshToken(),"role", String.valueOf(userLoginData.get().getRole())); redisTemplate.opsForValue().set(String.valueOf(userLoginData.get().getId()),refreshToken); @@ -95,13 +88,11 @@ public TokenResponseDto kakaoLogin(String accessToken) { Mono userInfoMono = getUserKakaoInfo(accessToken); KakaoUserResponseDto userInfo = userInfoMono.block(); -// LOGGER.info(String.valueOf(userInfo.getAccount_email())); -// LOGGER.info(String.valueOf(userInfo.getProfile_nickname())); -// LOGGER.info(String.valueOf(userInfo.getProfile_image())); -// LOGGER.info(String.valueOf(userInfo.getKakao_account().getEmail())); -// LOGGER.info(String.valueOf(userInfo.getKakao_account().getProfile().getProfileImageUrl())); -// LOGGER.info(String.valueOf(userInfo.getKakao_account().getProfile().getNickname())); + log.info(String.valueOf(userInfo.getKakao_account().getEmail())); + log.info(String.valueOf(userInfo.getKakao_account().getProfile().getProfile_image_url())); + log.info(String.valueOf(userInfo.getKakao_account().getProfile().getNickname())); + Optional userData = userRepository.findByUsernumber(String.valueOf(userInfo.getId())); @@ -109,9 +100,7 @@ public TokenResponseDto kakaoLogin(String accessToken) { user = User.builder() .usernumber(String.valueOf(userInfo.getId())) .role("USER") -// .email(userInfo.getKakao_account().getEmail()) -// .nickname(userInfo.getKakao_account().getProfile().getNickname()) -// .userProfile(userInfo.getKakao_account().getProfile().getProfileImageUrl()) + .profileImage(userInfo.getKakao_account().getProfile().getProfile_image_url()) .build(); userRepository.save(user); @@ -131,8 +120,6 @@ public TokenResponseDto kakaoLogin(String accessToken) { .refreshToken(refreshToken) .build(); -// redisTemplate.opsForHash().put(jwtTokenProvider.createRereshToken(),"userId", String.valueOf(userLoginData.get().getId())); -// redisTemplate.opsForHash().put(jwtTokenProvider.createRereshToken(),"role", String.valueOf(userLoginData.get().getRole())); redisTemplate.opsForValue().set(String.valueOf(userLoginData.get().getId()),refreshToken); @@ -140,7 +127,6 @@ public TokenResponseDto kakaoLogin(String accessToken) { return tokenResponseDto; } - public Mono getUserKakaoInfo(String accessToken) { return webClient .get()