使用自定义后端验证Firebase App Check调试令牌时遇invalid-argument错误
解决Firebase App Check调试令牌验证失败的问题
- 你搞混了两种令牌的用途:控制台生成的
9DE9100-A019-4AB6-AMS9-FD5SD10925DD格式字符串是调试凭据,不是直接用来验证的App Check令牌。 admin.appCheck().verifyToken()方法只接受JWT格式的App Check令牌(由客户端SDK生成,是用.分隔的三段长字符串),直接传控制台的调试令牌必然会解码失败。
正确操作流程:
- 将控制台生成的调试令牌配置到你的Flutter应用中:
- 可以通过
FirebaseAppCheck.instance.configure()方法的debugProvider参数传入,或者在Android的AndroidManifest.xml、iOS的Info.plist中配置对应的调试令牌字段。
- 可以通过
- 运行Flutter应用,App Check SDK会自动使用这个调试令牌生成有效的JWT格式App Check令牌。
- 获取这个JWT令牌(可通过打印日志、抓包等方式拿到),再通过
X-Firebase-AppCheck请求头传给后端,此时verifyToken()就能正常验证通过。
额外说明:
控制台的调试令牌本质是给客户端SDK用的"通行证",让SDK在调试环境下绕过安全校验,生成符合要求的JWT令牌。直接把它传给后端验证,相当于拿钥匙去当身份证用,自然不被识别。
内容的提问来源于stack exchange,提问作者Jacobo Koenig
相关产品推荐
相关产品推荐

