Skip to content

Commit 9f101ae

Browse files
authored
fix(auth): Android Intent URI Query Parameter Parsing (#4546)
1 parent d0e827a commit 9f101ae

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

packages/auth/amplify_auth_cognito/android/src/main/kotlin/com/amazonaws/amplify/amplify_auth_cognito/AmplifyAuthCognitoPlugin.kt

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import io.flutter.embedding.engine.plugins.FlutterPlugin
2121
import io.flutter.embedding.engine.plugins.activity.ActivityAware
2222
import io.flutter.embedding.engine.plugins.activity.ActivityPluginBinding
2323
import io.flutter.plugin.common.PluginRegistry
24+
import java.net.URLDecoder
2425
import java.util.Locale
2526

2627
open class AmplifyAuthCognitoPlugin :
@@ -590,15 +591,22 @@ open class AmplifyAuthCognitoPlugin :
590591
}
591592

592593
}
593-
594594
/**
595595
* The query parameters of the URI.
596596
*/
597597
val Uri.queryParameters: MutableMap<String, String>
598598
get() {
599599
val queryParameters = mutableMapOf<String, String>()
600-
for (name in queryParameterNames) {
601-
queryParameters[name] = getQueryParameter(name) ?: ""
600+
val queryString = this.encodedQuery ?: return queryParameters
601+
val queries = queryString.split("&")
602+
603+
for (query in queries) {
604+
val idx = query.indexOf("=")
605+
if (idx != -1) {
606+
val name = URLDecoder.decode(query.substring(0, idx), "UTF-8")
607+
val value = URLDecoder.decode(query.substring(idx + 1), "UTF-8")
608+
queryParameters[name] = value
609+
}
602610
}
603611
return queryParameters
604612
}

0 commit comments

Comments
 (0)