You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 04:25:31