如何测试Firebase App Check与reCAPTCHA v3的配置是否生效
Firebase App Check 与 reCAPTCHA v3 常见问题解答
无效令牌场景测试方法
测试前请先关闭App Check调试模式,避免调试配置干扰校验结果
- 篡改有效令牌:复制正常请求中携带的App Check令牌,随机修改其中3-5个字符后重新发起请求,此时校验会直接返回无效
- 使用过期令牌:缓存一份正常生成的有效令牌,等待1小时(reCAPTCHA v3生成的App Check令牌默认有效期为1小时)后再用该令牌发起请求,校验会返回过期/无效
- 跨域生成令牌:将前端页面部署到reCAPTCHA管理后台未加入白名单的域名下,用该域名下生成的令牌发起请求,校验会返回无效
- 使用未登记的调试令牌:如果开启了调试模式,输入任意没有在App Check调试列表中登记的字符串作为令牌发起请求,校验会返回无效
为App Check接入reCAPTCHA的原因
Firebase App Check的核心作用是拦截非授权应用对云函数、Firestore、云存储等资源的恶意调用,Web场景下reCAPTCHA v3是官方指定的可信证明提供方:
- 它可以验证请求发起环境是否为你开发的合法Web应用,识别爬虫、自动化脚本、恶意篡改页面后的异常请求
- Web端App Check没有内置的环境校验能力,不接入reCAPTCHA的话无法区分合法用户请求和恶意请求
- reCAPTCHA v3全程无用户交互,不会对正常用户的使用体验造成影响
App Check令牌的生成逻辑
App Check令牌不是reCAPTCHA直接生成的,完整生成流程如下:
- 前端Firebase SDK先调用reCAPTCHA v3接口,获取reCAPTCHA下发的验证响应令牌
- Firebase SDK将该reCAPTCHA令牌上传到Firebase App Check服务端
- 服务端校验reCAPTCHA令牌合法后,生成对应的App Check令牌下发给前端
- 前端调用云函数等资源时携带的就是这个Firebase官方生成的App Check令牌
内容的提问来源于stack exchange,提问作者Dima Malko
相关产品推荐
相关产品推荐

