Supabase Flutter Google Auth启动异常:授权后重定向回登录页
Flutter Supabase Google 登录重定向后未登录问题排查方案
核心排查步骤
1. 重定向Scheme严格校验
- 确认Android
build.gradle中的appAuthRedirectScheme完全匹配 Google Cloud安卓客户端ID的末尾段(格式为com.googleusercontent.apps.xxxxxx),大小写、字符、长度必须完全一致,不能存在空格或多余符号。 - iOS端需同步检查
Info.plist的CFBundleURLSchemes,确保已添加相同Scheme,无拼写错误。
2. Supabase控制台OAuth配置检查
- 登录Supabase项目控制台,进入Authentication > Providers > Google:
- 安卓、iOS客户端ID需分别填入对应平台输入框,禁止跨平台混用。
- Redirect URLs必须添加完整路径:
- Android端:
com.googleusercontent.apps.xxxxxx:/oauth2redirect/google - iOS端:
com.googleusercontent.apps.xxxxxx:/oauth2redirect/google
注意Scheme部分必须与客户端ID末尾完全一致,不能省略路径后缀。
- Android端:
3. 本地缓存清理与日志调试
- 清除App本地缓存(Android:设置-应用-清除数据;iOS:卸载重装),避免旧会话残留干扰。
- 在登录逻辑中添加日志打印,追踪授权返回结果:
查看控制台是否出现final authResponse = await supabase.auth.signInWithOAuth(Provider.google); print('用户信息:${authResponse.user}'); print('授权错误:${authResponse.error}');redirect_uri_mismatch、权限不足等明确错误提示。
4. Google Cloud凭据配置校验
- 进入Google Cloud控制台API和服务 > 凭据,找到对应平台的客户端ID:
- 安卓客户端的包名必须与Flutter项目
build.gradle中的applicationId完全一致,SHA-1指纹需正确(调试环境可通过keytool -list -v -keystore ~/.android/debug.keystore获取)。 - iOS客户端的Bundle ID必须与Xcode中项目的Bundle Identifier完全匹配。
- 安卓客户端的包名必须与Flutter项目
- 检查OAuth同意屏幕状态:若处于测试状态,仅添加至测试用户列表的账号可登录,可切换为生产状态或使用测试账号验证。
5. 依赖版本兼容性排查
- 确认
supabase_flutter及appauth相关依赖版本无冲突,可尝试锁定至教程指定版本,或更新至最新稳定版后重新测试。
内容的提问来源于stack exchange,提问作者Ramonesp
相关产品推荐
相关产品推荐

