Bläddra i källkod

bug fix clear accessToken when user logout

MrOzOn 5 år sedan
förälder
incheckning
7d9632b821

+ 4 - 1
app/src/main/java/com/mrozon/healthdiary/data/UserRepositoryImp.kt

@@ -5,11 +5,13 @@ import androidx.lifecycle.Transformations
 import com.mrozon.core_api.db.HealthDiaryDao
 import com.mrozon.core_api.entity.User
 import com.mrozon.core_api.mapper.UserToUserDbMapper
+import com.mrozon.core_api.security.SecurityTokenService
 import javax.inject.Inject
 
 class UserRepositoryImp @Inject constructor(
     private val healthDiaryDao: HealthDiaryDao,
-    private val mapper: UserToUserDbMapper
+    private val mapper: UserToUserDbMapper,
+    private val securityTokenService: SecurityTokenService
 ): UserRepository {
 
     override fun getLocalUser(): LiveData<User> {
@@ -20,6 +22,7 @@ class UserRepositoryImp @Inject constructor(
     }
 
     override suspend fun clearLocalUser(user: User) {
+        securityTokenService.clearAccessToken()
         val userDb = mapper.map(user)
             userDb?.let {
                 healthDiaryDao.deleteUser(userDb)

+ 1 - 0
core_api/src/main/java/com/mrozon/core_api/security/SecurityTokenService.kt

@@ -3,4 +3,5 @@ package com.mrozon.core_api.security
 interface SecurityTokenService {
     fun loadAccessToken(): String
     fun saveAccessToken(string: String)
+    fun clearAccessToken()
 }

+ 7 - 1
core_impl/src/main/java/com/mrozon/core_impl/crypto/SecurityTokenServiceImpl.kt

@@ -15,6 +15,8 @@ class SecurityTokenServiceImpl @Inject constructor(
     companion object {
         const val FILE_NAME = "access_token"
         const val FIELD_NAME = "token"
+        const val EMPTY_VALUE = ""
+
     }
 
     private var ssp: SharedPreferences
@@ -33,7 +35,7 @@ class SecurityTokenServiceImpl @Inject constructor(
     }
 
     override fun loadAccessToken(): String {
-        return ssp.getString(FIELD_NAME,"")?:""
+        return ssp.getString(FIELD_NAME,EMPTY_VALUE)?:EMPTY_VALUE
     }
 
     override fun saveAccessToken(string: String) {
@@ -41,4 +43,8 @@ class SecurityTokenServiceImpl @Inject constructor(
             .putString(FIELD_NAME,string)
             .apply()
     }
+
+    override fun clearAccessToken() {
+        saveAccessToken(EMPTY_VALUE)
+    }
 }