Expo Google Sign In Android端Error 400: invalid_request问题求助
Android Expo Google登录 Error 400: invalid_request 解决方案
核心问题定位
Android开发环境下,Expo生成的exp://192.*.*.*:19000是动态本地URI,不符合Google OAuth安全政策,且无法直接添加到授权列表(Google不允许动态IP类重定向URI)。
分步解决
替换重定向URI为固定格式
放弃添加动态exp://地址,改用Android OAuth2标准回调格式:com.googleusercontent.apps.[你的客户端ID]:/oauth2redirect/google将上述URI替换实际客户端ID后,添加到Google Cloud Console的「API和服务」→「凭据」→「OAuth 2.0 客户端ID」→「Android客户端」的授权重定向URI列表中。
校验配置一致性
- 确认
app.json中android.package的包名,与Google Cloud/Firebase注册的Android应用包名完全一致(大小写、字符无差异) - 核对
android.googleServicesFile指向的google-services.json文件中,client.client_id与Google Cloud的客户端ID匹配 - 添加Expo开发环境的SHA-1指纹到Google Cloud的Android应用配置中:
- Expo默认调试SHA-1:
BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:91:AF:A1:66:6E:44:5D:75 - 若用本地签名证书,可通过
keytool -list -v -keystore ~/.android/debug.keystore获取指纹
- Expo默认调试SHA-1:
- 确认
清除缓存并重启服务
- 清除Expo缓存:
expo r -c - 重启Metro开发服务器,重新生成Android调试构建
- 清除Android设备上Google Play服务的缓存(设置→应用→Google Play服务→存储→清除缓存)
- 清除Expo缓存:
排查额外隐患
- 确认Google Cloud Console中已启用「Google登录API」
- 检查Firebase项目与Google Cloud项目已正确关联,两边的Android应用配置同步
内容的提问来源于stack exchange,提问作者TreyCollier
相关产品推荐
相关产品推荐

