diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/member/auth/AuthRepository.kt b/src/main/kotlin/kr/co/vividnext/sodalive/member/auth/AuthRepository.kt index 7f6b9f94..0da863e1 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/member/auth/AuthRepository.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/member/auth/AuthRepository.kt @@ -15,7 +15,7 @@ interface AuthQueryRepository { fun getMemberIdsByDi(di: String): List fun getMemberIdsByNameAndBirthAndDiAndGender(name: String, birth: String, di: String, gender: Int): List fun getAuthIdByMemberId(memberId: Long): Long? - fun getActiveMemberIdsByDi(di: String): List + fun getActiveMemberIdsByNameAndBirthAndDiAndUniqueCi(name: String, birth: String, di: String, uniqueCi: String): List } class AuthQueryRepositoryImpl(private val queryFactory: JPAQueryFactory) : AuthQueryRepository { @@ -60,13 +60,21 @@ class AuthQueryRepositoryImpl(private val queryFactory: JPAQueryFactory) : AuthQ .fetchFirst() } - override fun getActiveMemberIdsByDi(di: String): List { + override fun getActiveMemberIdsByNameAndBirthAndDiAndUniqueCi( + name: String, + birth: String, + di: String, + uniqueCi: String + ): List { return queryFactory .select(member.id) .from(member) .leftJoin(member.auth, auth) .where( - auth.di.eq(di) + auth.name.eq(name) + .and(auth.birth.eq(birth)) + .and(auth.di.eq(di)) + .and(auth.uniqueCi.eq(uniqueCi)) .and(member.isActive.isTrue) ) .fetch() diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/member/auth/AuthService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/member/auth/AuthService.kt index 16800e38..d8366d80 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/member/auth/AuthService.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/member/auth/AuthService.kt @@ -81,7 +81,12 @@ class AuthService( @Transactional fun authenticate(certificate: AuthVerifyCertificate, memberId: Long): AuthResponse { - val memberIds = repository.getActiveMemberIdsByDi(di = certificate.di) + val memberIds = repository.getActiveMemberIdsByNameAndBirthAndDiAndUniqueCi( + name = certificate.name, + birth = certificate.birth, + di = certificate.di, + uniqueCi = certificate.unique + ) if (memberIds.size >= 3) { val message = messageSource.getMessage("member.auth.max_accounts", langContext.lang) ?: "" throw SodaException(