SWM-99-degree / jariBean

SWM 14th JariBean Project
0 stars 1 forks source link

[BUG] social media에서 조회한 유저 정보 수정 로직 제거 #205

Closed isayaksh closed 1 year ago

isayaksh commented 1 year ago

✏️ 설명

유저의 프로필을 변경한 후, 로그인을 풀고 다시 소셜 로그인을 하게 되면 소셜 로그인의 프로필 사진과 이름이 적용되어버리는 버그

🌌 발생 Controller

🧾 상황 재현

  1. 로그인을 한 상태에서 프로필을 변경한다.
  2. 로그아웃을 한 뒤 다시 로그인을 한다.
  3. 프로필을 확인한다.

💻 결과

🔥 Issue

유저의 프로필을 변경한 후, 로그인을 풀고 다시 소셜 로그인을 하게 되면 소셜 로그인의 프로필 사진과 이름이 적용되어버리는 버그

수정 전의 로직에서는 로그인 요청이 발생할 때마다 social media에서 사용자 정보를 조회하여 사용자 정보를 갱신하는 방식을 수행하였습니다.

해당 방식을 적용하면 사용자가 자신의 정보를 수정해도 새롭게 로그인할때마다 수정한 정보가 다시 기본 정보로 변경되는 문제가 발생하는 것을 확인하였습니다.

따라서 로그인 이후 사용자 정보를 갱신하는 로직을 제거하였습니다.

💻 수정 전

private User saveOrUpdateUser(SocialUserInfo socialUserInfo) {
    // save or create user
    User user = userRepository.findBySocialId(socialUserInfo.getSocialId())
            .orElse(User.builder()
                    .socialId(socialUserInfo.getSocialId())
                    .nickname(socialUserInfo.getNickname())
                    .password(passwordEncoder.encode(socialUserInfo.getNickname()))
                    .role(UNREGISTERED)
                    .build());
    // update user info
    user.updateBySocialInfo(socialUserInfo.getNickname(), socialUserInfo.getImageUrl(), passwordEncoder.encode(socialUserInfo.getNickname()));
    return userRepository.save(user);
}

💻 수정 후

private User saveOrUpdateUser(SocialUserInfo socialUserInfo) {
    // save or create user
    User user = userRepository.findBySocialId(socialUserInfo.getSocialId())
            .orElse(User.builder()
                    .socialId(socialUserInfo.getSocialId())
                    .nickname(socialUserInfo.getNickname())
                    .password(passwordEncoder.encode(socialUserInfo.getNickname()))
                    .role(UNREGISTERED)
                    .build());
    return userRepository.save(user);
}