Always verify sessions before login

Also avoid auto-login if saved account is anonymous and invalid
as this results in fetching new account every time app is restarted
as long as the validation fails resulting in rate-limiting.

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
Aayush Gupta
2023-06-19 20:32:01 +05:30
parent 9b8e3cf9c4
commit 87af312f54
7 changed files with 19 additions and 4 deletions

View File

@@ -41,5 +41,6 @@ sealed class AuthState {
object SignedOut : AuthState()
object Valid : AuthState()
object Fetching: AuthState()
object InValid: AuthState()
data class Status(val status: String?) : AuthState()
}

View File

@@ -91,7 +91,11 @@ class AccountActivity : BaseActivity() {
updateStatus(getString(R.string.requesting_new_session))
}
AuthState.Valid -> {
updateContents()
}
AuthState.InValid -> {
updateStatus(getString(R.string.failed_validating_account))
}
AuthState.Available -> {
@@ -105,7 +109,7 @@ class AccountActivity : BaseActivity() {
}
AuthState.SignedIn -> {
updateContents()
VM.observe()
}
AuthState.SignedOut -> {

View File

@@ -102,6 +102,11 @@ class SplashActivity : BaseActivity() {
moveToContent()
}
AuthState.InValid -> {
updateStatus(getString(R.string.failed_validating_account))
updateActionLayout(true)
}
AuthState.Available -> {
updateStatus(getString(R.string.session_verifying))
updateActionLayout(false)
@@ -113,7 +118,7 @@ class SplashActivity : BaseActivity() {
}
AuthState.SignedIn -> {
moveToContent()
VM.observe()
}
AuthState.SignedOut -> {

View File

@@ -215,7 +215,7 @@ class AuthViewModel(application: Application) : BaseAndroidViewModel(application
buildGoogleAuthData(email, aasToken)
}
AccountType.ANONYMOUS -> {
buildAnonymousAuthData()
liveData.postValue(AuthState.InValid)
}
}
}