React Native Expo中Google登录报invalid_request错误求助
解决Expo + React Native Google登录Error 400: invalid_request问题
针对你遇到的Google登录400错误,以下是几个关键排查和修复步骤:
添加正确的重定向URI到Google OAuth客户端
错误信息里的redirect_uri=exp://x.x.x.x:8081必须添加到Google控制台对应安卓OAuth客户端的授权重定向URI列表中。进入Google控制台→你的项目→API和服务→凭据→找到目标安卓客户端ID→编辑→在"授权重定向URI"栏填入这个exp://开头的地址并保存。确认开发环境的SHA-1指纹正确
Expo开发模式使用的SHA-1和生产打包环境的不同,别混淆了。执行以下命令获取开发环境的SHA-1:expo credentials:manager选择Android平台,查看"Debug Signing Credentials"下的SHA-1值,将其更新到Google控制台的安卓客户端配置中,替换之前可能填错的指纹。
显式指定redirectUri参数
在Google.useAuthRequest里手动指定redirectUri,确保和请求中的地址完全一致:const [request, response, promptAsync] = Google.useAuthRequest({ androidClientId: "x.-x.apps.googleusercontent.com", redirectUri: "exp://x.x.x.x:8081" // 替换成你实际的redirect_uri });检查OAuth同意屏幕的测试用户设置
如果你的OAuth同意屏幕处于测试状态,只有添加到"测试用户"列表中的Google账号才能登录。确认你用来测试的账号已被加入列表,否则会触发权限错误导致invalid_request。清除缓存并重启服务
- 用
expo start -c命令清除Expo缓存后重启开发服务器 - 清空手机上Expo Go应用的缓存
- 重新生成Google OAuth客户端ID,替换代码中的androidClientId后再测试
- 用
内容的提问来源于stack exchange,提问作者Martin Fenocchio
相关产品推荐
相关产品推荐

