Skip to content
Merged
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
Expand Up @@ -6,6 +6,8 @@
import java.util.Set;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.env.Environment;
import org.springframework.core.env.Profiles;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
Expand All @@ -24,9 +26,12 @@ public class OAuthLoginHelper {

private static final long RESTORE_WINDOW_DAYS = 7L;

private static final String STAGE_PROFILE = "stage";

private final UserRepository userRepository;
private final UnRegisteredUserRepository unRegisteredUserRepository;
private final SecurityProperties securityProperties;
private final Environment environment;

@Value("${app.frontend.base-url}")
private String frontendBaseUrl;
Expand Down Expand Up @@ -58,6 +63,10 @@ public Optional<User> findUserByProvider(Provider provider, String email, String
}

private Optional<User> restoreWithdrawnByProviderId(Provider provider, String providerId) {
if (isStageProfile()) {
return Optional.empty();
}

return userRepository
.findFirstByProviderIdAndProviderAndDeletedAtIsNotNullOrderByDeletedAtDesc(providerId, provider)
.filter(user -> user.canRestore(LocalDateTime.now(), RESTORE_WINDOW_DAYS))
Expand All @@ -68,6 +77,10 @@ private Optional<User> restoreWithdrawnByProviderId(Provider provider, String pr
}

private Optional<User> restoreWithdrawnByEmail(Provider provider, String email) {
if (isStageProfile()) {
return Optional.empty();
}

if (!StringUtils.hasText(email)) {
return Optional.empty();
}
Expand All @@ -80,6 +93,10 @@ private Optional<User> restoreWithdrawnByEmail(Provider provider, String email)
});
}

private boolean isStageProfile() {
return environment.acceptsProfiles(Profiles.of(STAGE_PROFILE));
}

// Apple 로그인 시 이메일이 누락된 경우, UnRegisteredUser에서 이메일을 조회
public String resolveAppleEmail(String providerId) {
if (!StringUtils.hasText(providerId)) {
Expand Down