Skip to content

Commit 6b0dc2d

Browse files
committed
[feat] RefreshToken 및 TokenService에서 memberId 기반으로 리프레시 토큰 처리 개선
1 parent 9f60e44 commit 6b0dc2d

File tree

2 files changed

+10
-10
lines changed

2 files changed

+10
-10
lines changed

src/main/java/kr/dgucaps/caps/domain/member/service/TokenService.java

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -52,17 +52,16 @@ public String issueNewRefreshToken(Long memberId) {
5252

5353
public MemberTokenResponse issueToken(Long memberId, Role role) {
5454
String accessToken = jwtProvider.getIssueToken(memberId, role, true);
55-
String redisKey = "RT:" + memberId;
56-
Optional<RefreshToken> refreshToken = refreshTokenRepository.findById(redisKey);
55+
Optional<RefreshToken> refreshToken = refreshTokenRepository.findById(memberId.toString());
5756
RefreshToken refreshTokenEntity;
5857
if (refreshToken.isPresent()) {
5958
refreshTokenEntity = refreshToken.get();
6059
} else {
6160
String newRefreshToken = issueNewRefreshToken(memberId);
62-
refreshTokenEntity = new RefreshToken(redisKey, newRefreshToken);
61+
refreshTokenEntity = new RefreshToken(memberId.toString(), newRefreshToken);
6362
refreshTokenRepository.save(refreshTokenEntity);
6463
}
65-
return MemberTokenResponse.of(accessToken, refreshTokenEntity.getRefreshToken());
64+
return MemberTokenResponse.of(accessToken, refreshTokenEntity.getToken());
6665
}
6766

6867
public void reissue(String refreshToken, HttpServletResponse response) {
@@ -83,7 +82,7 @@ public void reissue(String refreshToken, HttpServletResponse response) {
8382
// 저장된 refresh token을 조회
8483
RefreshToken refreshTokenEntity = refreshTokenRepository.findById(redisKey)
8584
.orElseThrow(() -> new UnauthorizedException(NO_REFRESH_TOKEN));
86-
String storedRefreshToken = refreshTokenEntity.getRefreshToken();
85+
String storedRefreshToken = refreshTokenEntity.getToken();
8786

8887
// 요청된 리프레시 토큰과 저장된 토큰 비교 검증
8988
jwtProvider.equalsRefreshToken(refreshToken, storedRefreshToken);
@@ -124,7 +123,6 @@ private void writeTokenCookies(HttpServletResponse response, String accessToken,
124123
}
125124

126125
public void logout(Long memberId) {
127-
String redisKey = "RT:" + memberId;
128-
refreshTokenRepository.deleteById(redisKey);
126+
refreshTokenRepository.deleteById(memberId.toString());
129127
}
130128
}

src/main/java/kr/dgucaps/caps/domain/redis/entity/RefreshToken.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,18 @@
22

33
import lombok.AllArgsConstructor;
44
import lombok.Getter;
5+
import lombok.NoArgsConstructor;
56
import org.springframework.data.annotation.Id;
67
import org.springframework.data.redis.core.RedisHash;
78

89
@Getter
9-
@RedisHash(value = "refreshToken", timeToLive = 14440)
10+
@RedisHash(value = "RT", timeToLive = 604800)
11+
@NoArgsConstructor
1012
@AllArgsConstructor
1113
public class RefreshToken {
1214

1315
@Id
14-
private String id;
16+
private String memberId;
1517

16-
private String refreshToken;
18+
private String token;
1719
}

0 commit comments

Comments
 (0)