Skip to content

Commit c752b84

Browse files
authored
Merge pull request #333 from minahYu/feat/logout
[User] 로그아웃 API 기능 구현
2 parents d617513 + 5c2ea65 commit c752b84

File tree

3 files changed

+9
-1
lines changed

3 files changed

+9
-1
lines changed

auth/src/main/kotlin/kpring/auth/repository/ExpireTokenRepository.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,10 @@ class ExpireTokenRepository(
1818
.awaitSingle()
1919
}
2020

21+
suspend fun isBlacklisted(tokenId: String): Boolean {
22+
return redisTemplate.hasKey(tokenId).awaitSingle()
23+
}
24+
2125
suspend fun expireToken(
2226
tokenId: String,
2327
expiredAt: LocalDateTime,

auth/src/main/kotlin/kpring/auth/service/TokenService.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,9 @@ class TokenService(
8989
val isExpired = !tokenRepository.isExpired(token)
9090
if (!isExpired) throw ServiceException(AuthErrorCode.TOKEN_EXPIRED)
9191

92+
val isBlacklisted = tokenRepository.isBlacklisted(jwt.id)
93+
if (isBlacklisted) throw ServiceException(AuthErrorCode.TOKEN_EXPIRED)
94+
9295
return TokenInfo(jwt.type, jwt.userId)
9396
}
9497
}

user/src/main/kotlin/kpring/user/service/LoginServiceImpl.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@ class LoginServiceImpl(
3131
}
3232

3333
override fun logout(request: LogoutRequest) {
34-
TODO("Not yet implemented")
34+
authClient.deleteToken(request.accessToken)
35+
authClient.deleteToken(request.refreshToken)
3536
}
3637

3738
fun handleTokenResponse(tokenResponse: ResponseEntity<CreateTokenResponse>): LoginResponse {

0 commit comments

Comments
 (0)