iOS设备Expo应用集成Google OAuth 2.0登录报错400
解决Expo iOS Google OAuth 400: invalid_request错误
找对Google Cloud的配置入口
你以为iOS OAuth客户端没有重定向URI设置?其实是找错地方了:- 在Google Cloud Console的OAuth 2.0客户端ID页面,选中你的iOS类型客户端,编辑时确认Bundle ID和app.json里的
ios.bundleIdentifier完全一致,大小写也不能错。 - 开发模式下Expo用的是
exp://开头的临时URI,这时候得额外加一个Web应用类型的OAuth客户端,把exp://192.168.0.26:8081(还有exp://localhost:8081这类可能用到的本地URI)都加到这个Web客户端的已授权重定向URI里。
- 在Google Cloud Console的OAuth 2.0客户端ID页面,选中你的iOS类型客户端,编辑时确认Bundle ID和app.json里的
检查Expo代码里的OAuth参数
- 用expo-auth-session的话,redirectUri别硬写死,开发环境用
makeRedirectUri({ scheme: '你的app schema' }),或者直接指定开发时的exp://地址;生产环境再换成自定义schema(比如yourapp://oauthcallback)。 - 确认scope参数没写错,比如
['profile', 'email'],少写或者拼错也会触发invalid_request。
- 用expo-auth-session的话,redirectUri别硬写死,开发环境用
清缓存重启
- 重启Expo服务时加清除缓存参数:
expo start -c - iOS设备上彻底退出Expo Go,重新扫码加载项目,避免旧配置缓存搞事情。
- 重启Expo服务时加清除缓存参数:
测试项目的额外检查
新建的测试项目要确认:- 已经启用了必要的API(比如Identity Toolkit API,部分OAuth流程依赖)
- OAuth同意屏幕里添加了测试用户(如果项目处于测试模式,未添加的用户会被拦截)
内容的提问来源于stack exchange,提问作者Strahinja
相关产品推荐
相关产品推荐

