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

Android Amplify Auth使用Cognito Hosted UI时登出超时问题咨询

问题根因

你遇到的三个问题均来自两个核心配置错误:

  1. 宿主Activity未接管Hosted UI的返回回调,导致Amplify无法接收认证结果,触发不了success回调,也会导致登出流程无法正常闭环出现超时
  2. Cognito配置、Manifest scheme配置、Amplify初始化参数三者不匹配,同时未配置登录的提示参数

解决方案

第一步:配置宿主Activity接收回调

在你的单Activity(即MainActivity)中重写onNewIntent和onActivityResult方法,将回调数据传递给Amplify:

class MainActivity : AppCompatActivity() {
    // ...其他原有代码
    override fun onNewIntent(intent: Intent?) {
        super.onNewIntent(intent)
        if (intent?.data != null) {
            Amplify.Auth.handleWebUISignInResponse(intent)
        }
    }

    @Deprecated("Deprecated in Java")
    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        if (requestCode == AWSCognitoAuthWebUISignInActivity.WEB_UI_SIGN_IN_REQUEST_CODE) {
            Amplify.Auth.handleWebUISignInResponse(data)
        }
    }
}

第二步:校验三方配置一致性

确认以下三个位置的scheme值完全一致:

  1. AndroidManifest中HostedUIRedirectActivity的android:scheme值
  2. AWS Cognito控制台中「应用客户端设置」里的回调URL、登出回调URL的前缀(比如你的scheme是myapp,那回调URL应该是myapp://callback,登出回调是myapp://signout)
  3. 项目中amplifyconfiguration.json里auth插件配置的signInRedirectURI、signOutRedirectURI的前缀

第三步:修复登录/登出调用逻辑

  • 登出时使用全局登出配置,清除浏览器缓存,解决登出超时问题:
fun signOut() {
    val options = AuthSignOutOptions.builder()
        .globalSignOut(true)
        .build()
    Amplify.Auth.signOut(options,
        { Log.i(tag, "logoutSuccess") },
        { Log.e(tag, "logoutError", it) } )
}
  • 调用登录时添加prompt=login参数,强制显示账号选择页,解决已登录状态下跳转闪一下的问题:
fun signInWithWebUI(a: Activity) {
    val options = AuthSignInWithWebUIOptions.builder()
        .signInQueryParameters(mapOf("prompt" to "login"))
        .build()
    Amplify.Auth.signInWithWebUI(a, options,
        { Log.i(tag, "loginSuccess") },
        { Log.e(tag, "loginError", it) } )
}

第四步:升级Amplify SDK版本

你之前只升级了Amplify CLI,未升级项目依赖的Android端Amplify SDK,需要在模块级build.gradle中把Amplify相关依赖的版本升级到最新稳定版(至少2.0+)。


内容的提问来源于stack exchange,提问作者jbdev

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 09:15:02