Skip to content

Commit 6026471

Browse files
authored
[MERGE] Merge pull request #312 from Team-WSS/fix/#311
[FIX] 유저 탈퇴 시 해당 유저의 모든 리프레시 토큰 제거 로직 추가
2 parents 351db47 + a1fa291 commit 6026471

File tree

4 files changed

+9
-8
lines changed

4 files changed

+9
-8
lines changed

src/main/java/org/websoso/WSSServer/domain/RefreshToken.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import lombok.Getter;
55
import org.springframework.data.annotation.Id;
66
import org.springframework.data.redis.core.RedisHash;
7+
import org.springframework.data.redis.core.index.Indexed;
78

89
@Getter
910
@AllArgsConstructor
@@ -13,5 +14,6 @@ public class RefreshToken {
1314
@Id
1415
private String refreshToken;
1516

17+
@Indexed
1618
private Long userId;
1719
}
Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,9 @@
11
package org.websoso.WSSServer.dto.user;
22

3-
import jakarta.validation.constraints.NotBlank;
43
import jakarta.validation.constraints.Size;
54

65
public record WithdrawalRequest(
76
@Size(max = 80, message = "탈퇴 사유는 80자를 초과할 수 없습니다.")
8-
String reason,
9-
@NotBlank(message = "리프레시 토큰은 null 이거나, 공백일 수 없습니다.")
10-
String refreshToken
7+
String reason
118
) {
129
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
package org.websoso.WSSServer.repository;
22

3+
import java.util.List;
34
import java.util.Optional;
45
import org.springframework.data.repository.CrudRepository;
56
import org.websoso.WSSServer.domain.RefreshToken;
67

78
public interface RefreshTokenRepository extends CrudRepository<RefreshToken, String> {
89

910
Optional<RefreshToken> findByRefreshToken(String refreshToken);
11+
12+
List<RefreshToken> findAllByUserId(Long userId);
1013
}

src/main/java/org/websoso/WSSServer/service/UserService.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,7 @@ public void withdrawUser(User user, WithdrawalRequest withdrawalRequest) {
196196
String messageContent = MessageFormatter.formatUserWithdrawMessage(user.getUserId(), user.getNickname(),
197197
withdrawalRequest.reason());
198198

199-
cleanupUserData(user.getUserId(), withdrawalRequest.refreshToken());
199+
cleanupUserData(user.getUserId());
200200

201201
messageService.sendDiscordWebhookMessage(
202202
DiscordWebhookMessage.of(messageContent, WITHDRAW));
@@ -239,9 +239,8 @@ private void unlinkSocialAccount(User user) {
239239
}
240240
}
241241

242-
private void cleanupUserData(Long userId, String refreshToken) {
243-
refreshTokenRepository.findByRefreshToken(refreshToken)
244-
.ifPresent(refreshTokenRepository::delete);
242+
private void cleanupUserData(Long userId) {
243+
refreshTokenRepository.deleteAll(refreshTokenRepository.findAllByUserId(userId));
245244
feedRepository.updateUserToUnknown(userId);
246245
commentRepository.updateUserToUnknown(userId);
247246
userRepository.deleteById(userId);

0 commit comments

Comments
 (0)