Skip to content
Merged
Show file tree
Hide file tree
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
2 changes: 2 additions & 0 deletions src/main/java/org/websoso/WSSServer/domain/RefreshToken.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import lombok.Getter;
import org.springframework.data.annotation.Id;
import org.springframework.data.redis.core.RedisHash;
import org.springframework.data.redis.core.index.Indexed;

@Getter
@AllArgsConstructor
Expand All @@ -13,5 +14,6 @@ public class RefreshToken {
@Id
private String refreshToken;

@Indexed
private Long userId;
}
Original file line number Diff line number Diff line change
@@ -1,12 +1,9 @@
package org.websoso.WSSServer.dto.user;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;

public record WithdrawalRequest(
@Size(max = 80, message = "탈퇴 사유는 80자를 초과할 수 없습니다.")
String reason,
@NotBlank(message = "리프레시 토큰은 null 이거나, 공백일 수 없습니다.")
String refreshToken
String reason
) {
}
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
package org.websoso.WSSServer.repository;

import java.util.List;
import java.util.Optional;
import org.springframework.data.repository.CrudRepository;
import org.websoso.WSSServer.domain.RefreshToken;

public interface RefreshTokenRepository extends CrudRepository<RefreshToken, String> {

Optional<RefreshToken> findByRefreshToken(String refreshToken);

List<RefreshToken> findAllByUserId(Long userId);
}
7 changes: 3 additions & 4 deletions src/main/java/org/websoso/WSSServer/service/UserService.java
Original file line number Diff line number Diff line change
Expand Up @@ -196,7 +196,7 @@ public void withdrawUser(User user, WithdrawalRequest withdrawalRequest) {
String messageContent = MessageFormatter.formatUserWithdrawMessage(user.getUserId(), user.getNickname(),
withdrawalRequest.reason());

cleanupUserData(user.getUserId(), withdrawalRequest.refreshToken());
cleanupUserData(user.getUserId());

messageService.sendDiscordWebhookMessage(
DiscordWebhookMessage.of(messageContent, WITHDRAW));
Expand Down Expand Up @@ -239,9 +239,8 @@ private void unlinkSocialAccount(User user) {
}
}

private void cleanupUserData(Long userId, String refreshToken) {
refreshTokenRepository.findByRefreshToken(refreshToken)
.ifPresent(refreshTokenRepository::delete);
private void cleanupUserData(Long userId) {
refreshTokenRepository.deleteAll(refreshTokenRepository.findAllByUserId(userId));
feedRepository.updateUserToUnknown(userId);
commentRepository.updateUserToUnknown(userId);
userRepository.deleteById(userId);
Expand Down
Loading