Skip to content

Commit 1bbd5ee

Browse files
committed
Refactor: 자동 로그인 기능 변경
- hasTokenUsecase 제거 - 리프레시 토큰을 기반으로 자동 로그인 시도
1 parent df92e6f commit 1bbd5ee

3 files changed

Lines changed: 34 additions & 17 deletions

File tree

domain/src/main/java/com/threegap/bitnagil/domain/auth/repository/AuthRepository.kt

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,12 @@ import com.threegap.bitnagil.domain.auth.model.TermsAgreement
55

66
interface AuthRepository {
77
suspend fun login(socialAccessToken: String, socialType: String): Result<AuthSession>
8-
9-
suspend fun hasToken(): Boolean
10-
11-
suspend fun updateAuthToken(accessToken: String, refreshToken: String): Result<Unit>
12-
138
suspend fun submitAgreement(termsAgreement: TermsAgreement): Result<Unit>
14-
159
suspend fun logout(): Result<Unit>
16-
1710
suspend fun withdrawal(): Result<Unit>
11+
12+
suspend fun reissueToken(refreshToken: String): Result<AuthSession>
13+
suspend fun getRefreshToken(): String?
14+
suspend fun updateAuthToken(accessToken: String, refreshToken: String): Result<Unit>
15+
suspend fun clearAuthToken(): Result<Unit>
1816
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package com.threegap.bitnagil.domain.auth.usecase
2+
3+
import com.threegap.bitnagil.domain.auth.model.UserRole
4+
import com.threegap.bitnagil.domain.auth.repository.AuthRepository
5+
import javax.inject.Inject
6+
7+
class AutoLoginUseCase @Inject constructor(
8+
private val authRepository: AuthRepository,
9+
) {
10+
suspend operator fun invoke(): UserRole {
11+
val refreshToken = authRepository.getRefreshToken()
12+
if (refreshToken.isNullOrEmpty()) return UserRole.UNKNOWN
13+
14+
return authRepository.reissueToken(refreshToken)
15+
.onSuccess { authSession ->
16+
authRepository.updateAuthToken(
17+
accessToken = authSession.accessToken,
18+
refreshToken = authSession.refreshToken,
19+
)
20+
}
21+
.onFailure {
22+
authRepository.clearAuthToken()
23+
}
24+
.fold(
25+
onSuccess = { authSession -> authSession.role },
26+
onFailure = { UserRole.UNKNOWN },
27+
)
28+
}
29+
}

domain/src/main/java/com/threegap/bitnagil/domain/auth/usecase/HasTokenUseCase.kt

Lines changed: 0 additions & 10 deletions
This file was deleted.

0 commit comments

Comments
 (0)