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

Expo ReactNative独立包中AuthSession谷歌登录取id_token失败如何解决

Expo独立包Google登录获取id_token报错解决方案

核心原因

该问题90%以上是由独立包的OAuth配置和开发环境不一致导致的,Google对不同端的客户端ID、签名、scope的校验规则在生产环境更严格。

可行解决步骤

  • 第一步:补全Google Cloud OAuth客户端配置
    不要仅使用开发环境的Web客户端ID,单独为Android、iOS创建对应平台的OAuth客户端ID:
    • Android端:填写和app.json完全一致的包名,上传打包所用Keystore的SHA1签名(如果使用EAS Build,需从EAS项目控制台获取正式包对应的SHA1,不要用本地debug keystore的签名)
    • iOS端:填写和app.json完全一致的Bundle ID,绑定正确的苹果开发者Team ID
  • 第二步:调整Google登录初始化参数
    初始化Google.useAuthRequest时,显式传入对应平台的客户端ID,同时配置正确的scope和响应类型:
    const [request, response, promptAsync] = Google.useAuthRequest({
      androidClientId: '你的Android OAuth客户端ID',
      iosClientId: '你的iOS OAuth客户端ID',
      webClientId: '你的Web客户端ID', // 可选,仅当需要跨端复用的时候传
      scopes: ['openid', 'profile', 'email'], // 必须包含openid,否则Google不支持返回id_token
      responseType: 'id_token', // 显式指定你需要的响应类型
    });
    
  • 第三步:校验打包配置一致性
    确认app.json中expo.android.package、expo.ios.bundleIdentifier和你在Google Cloud控制台填写的参数完全一致,大小写不能有出入,不要额外配置多余的scheme重定向规则。

以上配置全部正确的前提下,重新打包后即可在独立包环境正常获取到id_token,不会再触发响应类型不支持的报错。

内容的提问来源于stack exchange,提问作者John Stuart

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 05:36:08