Skip to content

Commit e3377e5

Browse files
Ojongseokclaude
andcommitted
[fix] #211: TokenRepository 복호화 실패 시 예외 처리 추가
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent fedadb5 commit e3377e5

1 file changed

Lines changed: 14 additions & 6 deletions

File tree

core/data/src/main/java/com/neki/android/core/data/repository/impl/TokenRepositoryImpl.kt

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -37,22 +37,30 @@ class TokenRepositoryImpl @Inject constructor(
3737

3838
override fun hasTokens(): Flow<Boolean> {
3939
return dataStore.data.map { preferences ->
40-
val accessToken = preferences[ACCESS_TOKEN]?.let { CryptoManager.decrypt(it) }
41-
val refreshToken = preferences[REFRESH_TOKEN]?.let { CryptoManager.decrypt(it) }
42-
43-
!accessToken.isNullOrBlank() && !refreshToken.isNullOrBlank()
40+
runCatching {
41+
val accessToken = preferences[ACCESS_TOKEN]?.let { CryptoManager.decrypt(it) }
42+
val refreshToken = preferences[REFRESH_TOKEN]?.let { CryptoManager.decrypt(it) }
43+
!accessToken.isNullOrBlank() && !refreshToken.isNullOrBlank()
44+
}.getOrElse {
45+
dataStore.edit { it.remove(ACCESS_TOKEN); it.remove(REFRESH_TOKEN) }
46+
false
47+
}
4448
}
4549
}
4650

4751
override fun getAccessToken(): Flow<String> {
4852
return dataStore.data.map { preferences ->
49-
preferences[ACCESS_TOKEN]?.let { CryptoManager.decrypt(it) } ?: ""
53+
runCatching {
54+
preferences[ACCESS_TOKEN]?.let { CryptoManager.decrypt(it) } ?: ""
55+
}.getOrElse { "" }
5056
}
5157
}
5258

5359
override fun getRefreshToken(): Flow<String> {
5460
return dataStore.data.map { preferences ->
55-
preferences[REFRESH_TOKEN]?.let { CryptoManager.decrypt(it) } ?: ""
61+
runCatching {
62+
preferences[REFRESH_TOKEN]?.let { CryptoManager.decrypt(it) } ?: ""
63+
}.getOrElse { "" }
5664
}
5765
}
5866

0 commit comments

Comments
 (0)