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

React Native Google Sign-In安卓端无法获取IDToken及错误码10问题求助

解决react-native-google-signin的错误码10及idToken为null问题

我之前也踩过一模一样的坑,折腾了好一阵子才理顺,给你梳理下关键的排查和修复步骤:

首先明确下,错误码10对应的是DEVELOPER_ERROR,本质是Google服务端和你的客户端配置不匹配导致的;而不传webClientId时idToken为null,是因为默认走的Android客户端配置,没法生成用于后端验证的idToken,必须依赖Web类型的客户端ID才能拿到有效idToken。

下面是具体的解决步骤:

  • 确认webClientId的类型正确
    你必须使用Web应用类型的OAuth客户端ID,而不是Android应用的!很多人会犯这个错——去Google开发者控制台的「OAuth 2.0客户端ID」列表里,找到标注为「Web应用」的那一项,复制它的clientId(就是你说的***********************.apps.googleusercontent.com格式),这个才是要传给GoogleSignin.configure的webClientId。

  • 验证SHA-1证书指纹的配置
    不管是debug还是release环境,都要把对应签名密钥的SHA-1添加到Web应用客户端ID的授权列表里:

    1. 获取debug版SHA-1:在终端执行命令
      keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
      
    2. 把得到的SHA-1字符串,粘贴到Google开发者控制台中Web应用客户端ID的「已授权的安卓应用」里,格式是SHA1;你的应用包名(比如AA:BB:CC...;com.yourapp.name)。
  • 检查google-services.json的正确性
    确保文件放在android/app/目录下(你写的android/apps应该是笔误),而且文件里包含了Web应用客户端的信息。可以打开文件搜索client_id,确认有Web类型的条目存在。

  • 完善react-native-google-signin的初始化配置
    确保初始化代码里的参数正确,比如:

    import { GoogleSignin } from '@react-native-google-signin/google-signin';
    
    GoogleSignin.configure({
      webClientId: '你的Web应用clientId', // 这里必须是Web类型的ID
      offlineAccess: true, // 如果需要后端获取refresh token的话开启
      forceCodeForRefreshToken: true,
      accountName: '', // 可选,指定登录的账号
    });
    
  • 检查OAuth同意屏幕的配置
    去Google开发者控制台的「OAuth同意屏幕」页面,确认:

    1. 状态是「已发布」(测试阶段可以选「内部」,但要添加测试用户)
    2. 添加了必要的权限范围,比如email、profile、openid

按照这些步骤排查完,应该就能解决错误码10的问题,同时正常获取到idToken了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:51:44