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

生产环境应用Firebase手机号验证报错17028:safety_net_token无效

Firebase 手机号验证17028无效safety_net_token报错排查方案

可能触发问题的原因

  • Google官方已全面停用SafetyNet Attestation API,原有SafetyNet token的校验规则已终止服务,你当前项目依赖的Firebase Auth仍在调用已废弃的SafetyNet接口生成校验token,导致Firebase服务端判定token无效。
  • 你使用的react-native-firebase Auth模块版本较低,未适配Google近期对设备验证逻辑的规则更新,底层生成的safety_net_token格式不符合Firebase服务端最新的校验要求。
  • 你的Google Cloud项目下Android设备验证API存在隐性权限限制或配额异常,未对外提示,导致生成的token未经过Google侧签名就返回给应用,触发无效报错。
  • 部分终端用户的Google Play服务版本过低,无法生成符合最新规范的SafetyNet token,触发报错。

保留设备验证能力的修复方案

  • 优先完成SafetyNet到Play Integrity API的官方替代迁移:
    • 进入Google Cloud Console启用Play Integrity API,无需额外付费。
    • 进入Firebase控制台,打开「Authentication > 设置 > 安全和隐私」选项,开启Play Integrity校验开关,关闭原有SafetyNet校验选项。
    • 升级react-native-firebase Auth模块到最新稳定版,适配Play Integrity的调用逻辑,原有手机号验证的上层业务代码无需大幅改动。
    • 确认已将Play Console中应用完整性模块下的所有SHA256指纹(包括应用上传密钥、Google Play签名密钥、内测渠道专属密钥的指纹)全部录入Firebase控制台的应用配置中。
  • 若暂时无法完成全量迁移,可先做如下临时修复:
    • 升级react-native-firebase Auth模块到对应大版本的最新补丁版,确认是否包含SafetyNet兼容修复逻辑。
    • 检查Google Cloud Console中Android设备验证API的配额设置,确认没有触发阈值限制,同时重置API密钥权限后重新测试。
    • 在应用侧增加降级逻辑,当检测到17028无效token报错时,自动触发Play Integrity校验或CAPTCHA验证,避免用户注册流程中断。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 17:24:03