如何解决Amplify谷歌认证Android端的err_unknown_url_scheme错误?
Android Amplify托管UI谷歌二次验证后err_unknown_url_scheme错误修复
确认Deep Link配置准确性
检查AndroidManifest中HostedUIRedirectActivity的是否匹配Amplify配置的redirect URI,示例配置: <activity android:name="com.amplifyframework.auth.cognito.activities.HostedUIRedirectActivity" android:exported="true"> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <!-- 替换为你的实际redirect URI scheme和host --> <data android:scheme="myapp" android:host="callback" /> </intent-filter> </activity>确保scheme、host与Amplify CLI或Cognito控制台配置的redirect URI完全一致,无拼写错误。
适配谷歌OAuth额外跳转
谷歌二次验证后可能触发额外路径跳转,若redirect URI包含具体路径(如myapp://callback/signin),需在的标签中添加 android:path="/signin",覆盖完整回调路径。强制使用WebView替代系统浏览器
部分浏览器处理自定义scheme时会弹出错误提示,在Amplify初始化时开启preferPrivateSession,强制使用内置WebView:Amplify.addPlugin(AWSCognitoAuthPlugin()) val authConfig = AuthConfiguration.builder() .userPool(...) .oauth(OAuthConfiguration.builder() .domain("你的Cognito域名") .redirectUri("myapp://callback") .signOutUri("myapp://signout") .scopes("openid", "email") .preferPrivateSession(true) .build()) .build() Amplify.configure(authConfig, context)自定义RedirectActivity拦截错误跳转
若上述配置无效,可自定义Activity处理回调,拦截非预期URL并直接关闭页面:class CustomRedirectActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) intent.data?.let { data -> if (data.scheme == "myapp") { Amplify.Auth.handleWebUISignInResponse(intent, object : AuthSignInCallback { override fun onSignInResult(result: AuthSignInResult) = finish() override fun onError(error: AuthException) = finish() }) } else { finish() } } ?: finish() } }同时在AndroidManifest中替换原
HostedUIRedirectActivity为这个自定义Activity,保持intent-filter配置不变。验证Cognito控制台OAuth设置
登录AWS控制台,检查Cognito用户池的OAuth设置里,回调URL和退出URL是否与本地配置完全一致,包括scheme、host、路径,避免多余斜杠或拼写错误。
内容的提问来源于stack exchange,提问作者Amir
相关产品推荐
相关产品推荐

