From d2169ad4f642a610de82683f5947a9b536edafbc Mon Sep 17 00:00:00 2001 From: DaVinci9196 <150454414+DaVinci9196@users.noreply.github.com> Date: Mon, 29 Apr 2024 16:40:19 +0800 Subject: [PATCH] Auth: Correctly handle permission for requests with token request options (#2322) --- .../src/main/kotlin/org/microg/gms/auth/signin/extensions.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/play-services-core/src/main/kotlin/org/microg/gms/auth/signin/extensions.kt b/play-services-core/src/main/kotlin/org/microg/gms/auth/signin/extensions.kt index 1bd58c03f0..c872b63d04 100644 --- a/play-services-core/src/main/kotlin/org/microg/gms/auth/signin/extensions.kt +++ b/play-services-core/src/main/kotlin/org/microg/gms/auth/signin/extensions.kt @@ -96,11 +96,11 @@ fun getServerAuthTokenManager(context: Context, packageName: String, options: Go suspend fun performSignIn(context: Context, packageName: String, options: GoogleSignInOptions?, account: Account, permitted: Boolean = false): GoogleSignInAccount? { val authManager = getOAuthManager(context, packageName, options, account) - if (permitted) authManager.isPermitted = true val authResponse = withContext(Dispatchers.IO) { if (options?.includeUnacceptableScope == true) { authManager.setTokenRequestOptions(consentRequestOptions) } + if (permitted) authManager.isPermitted = true authManager.requestAuth(true) } var consentResult:String ?= null @@ -110,7 +110,7 @@ suspend fun performSignIn(context: Context, packageName: String, options: Google } else { if (authResponse.auth == null) return null } - Log.d(TAG, "id token requested: ${options?.isIdTokenRequested == true}, serverClientId = ${options?.serverClientId}") + Log.d(TAG, "id token requested: ${options?.isIdTokenRequested == true}, serverClientId = ${options?.serverClientId}, permitted = ${authManager.isPermitted}") val idTokenResponse = getIdTokenManager(context, packageName, options, account)?.let { it.isPermitted = authManager.isPermitted consentResult?.let { result -> it.putDynamicFiled(CONSENT_RESULT, result) }