已完成SafetyNet校验后Firebase手机号认证仍无法正常工作
Firebase 手机号认证 SafetyNet 集成异常排查方案
- 基础配置校验
- 确认运行设备的Google Play服务版本不低于11.0.2,Google服务框架处于正常可访问状态
- 检查Firebase控制台对应Android应用的签名配置,需同时添加调试、发布两套SHA-256指纹,从Google Play Console获取的应用签名指纹也需要同步录入
- 进入Firebase控制台「Authentication - 登录方式 - 电话」配置页,确认已开启SafetyNet验证开关,同时项目已开通Cloud Billing服务
- 代码逻辑校验
- 每次调用
SafetyNet.getClient(context).attest()方法时,必须生成全新的一次性nonce,禁止复用历史nonce - 拿到SafetyNet返回的JWS响应后,必须显式传入
PhoneAuthOptions的setSafetyNetToken()方法,再调用verifyPhoneNumber发起手机号认证请求 - 若开启了代码混淆,需在ProGuard规则中添加Firebase Auth、SafetyNet对应的免混淆规则
- 每次调用
- 异常定位方式
监听手机号认证请求的异常回调:若返回FirebaseAuthInvalidCredentialsException说明SafetyNet token有效性校验失败;若仍弹出reCaptcha校验框,说明当前设备未通过SafetyNet环境校验,Firebase自动降级到reCaptcha验证流程
内容的提问来源于stack exchange,提问作者Alice Smith
相关产品推荐
相关产品推荐

