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

React Native iOS应用使用Google ID Token对接AWS Cognito身份池时触发InvalidIdentityPoolConfigurationException的排查求助

React Native iOS应用使用Google ID Token对接AWS Cognito身份池时触发InvalidIdentityPoolConfigurationException的排查求助

我来帮你梳理下这个场景下可能导致InvalidIdentityPoolConfigurationException的几个关键原因,结合你给出的配置信息逐一排查:

  • ID Token受众(aud)与Cognito身份池Google客户端ID不匹配
    你解码后的Google ID Token里,aud字段是Web Client ID,但你在Cognito身份池的Google认证提供者里配置的是iOS Client ID。Cognito在验证ID Token时,会严格检查Token的aud是否与身份池里配置的Google客户端ID一致,不匹配的话就会判定身份池配置无效。
    你可以二选一调整:

    • 把Cognito身份池里的Google Client ID改成Web Client ID,
    • 或者调整React Native iOS里的Google登录配置,让获取到的ID Token的aud字段对应iOS Client ID(比如检查你用的登录库,确保没有手动指定audience为Web ID)。
  • Cognito身份池与IAM角色的关联错误
    虽然你的IAM角色信任策略配置看起来没问题,但要确认Cognito身份池是否正确关联了这个角色:

    1. 进入Cognito身份池的「身份池角色」设置页面
    2. 检查「已验证身份的角色」是否选择了你配置了上述信任策略的IAM角色
      如果选错了角色,Cognito无法找到对应的权限配置,就会触发这个错误。
  • Google OAuth客户端的配置遗漏
    如果你最终选择用iOS Client ID作为Cognito的Google客户端ID,要确保iOS OAuth客户端的配置正确:

    • 「iOS应用」里的Bundle ID必须和你React Native iOS项目的Bundle ID完全一致(包括大小写)
    • 确认这个客户端在Google Cloud控制台里是启用状态,没有被禁用
  • 额外检查:ID Token的有效性
    确保你使用的Google ID Token是未过期的(对比exp时间戳和当前时间),并且iss字段确实是https://accounts.google.com,避免使用了无效或伪造的Token。

测试建议

调整完配置后,重新获取Google ID Token并解码确认aud字段匹配,再用AWS CLI测试:

aws cognito-identity get-credentials-for-identity \
  --identity-id us-east-1:<Cognito Identity Pool Id> \
  --logins "accounts.google.com=<调整后的Google ID Token>"

优先排查第一个点,这是这个场景下最常见的触发原因。如果还是有问题,可以补充下身份池里Google客户端ID的具体配置细节,我再帮你进一步分析。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.07 09:09:36