모든 기기에서 로그아웃 추가

This commit is contained in:
2023-08-02 15:54:25 +09:00
parent 16c5c5f6b6
commit 0c106540cd
2 changed files with 20 additions and 0 deletions

View File

@@ -376,6 +376,17 @@ class MemberService(
}
}
@Transactional
fun logoutAll(memberId: Long) {
val member = repository.findByIdOrNull(memberId)
?: throw SodaException("로그인 정보를 확인해주세요.")
member.pushToken = null
val lock = getOrCreateLock(memberId = memberId)
lock.write { tokenRepository.deleteById(memberId) }
}
private fun getOrCreateLock(memberId: Long): ReentrantReadWriteLock {
return tokenLocks.computeIfAbsent(memberId) { ReentrantReadWriteLock() }
}