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

Flutter中amplify_auth_cognito登出后无法重新选择谷歌账号登录问题

解决谷歌登录静默跳转问题

方案1:登录时强制触发账号选择界面

调用signInWithWebUI时,通过配置参数强制弹出谷歌账号选择器,不管之前是否存在登录会话:

await Amplify.Auth.signInWithWebUI(
  provider: AuthProvider.google,
  options: SignInWithWebUIOptions(
    authProviderOptions: const GoogleAuthProviderOptions(
      prompt: 'select_account',
    ),
  ),
);

prompt: 'select_account'是谷歌OAuth的标准参数,会强制触发账号选择流程,确保每次登录都能让用户切换或选择账号。

方案2:登出时清除全局会话

如果需要彻底清除所有跨平台的登录状态,包括谷歌端的会话,可以在登出时启用全局登出:

await Amplify.Auth.signOut(
  options: const SignOutOptions(
    globalSignOut: true,
  ),
);

这个操作会向Cognito发送全局登出请求,同时尝试清除关联的谷歌会话。不过部分平台可能需要结合方案1使用,因为浏览器端的谷歌缓存可能无法完全通过全局登出清除。

问题根源

默认的signOut()仅清除Amplify本地的登录状态,不会删除谷歌在浏览器/系统中保存的会话凭证。因此再次调用登录时,谷歌会自动复用旧会话完成静默登录,跳过账号选择环节。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 09:05:23