javascript - Firebase AppCheck 网络应用程序无法在生产模式下运行

我无法让 Firebase AppCheck 在具有 Firestore 和 Storage 的 Vue.js 项目上以生产模式工作。但它在开发中正常工作。

const appCheck: AppCheck = initializeAppCheck(firebaseApp, {
  provider: new ReCaptchaV3Provider(reCaptchaSiteKey),
  isTokenAutoRefreshEnabled: true,
});

getToken(appCheck)
  .then((result: AppCheckTokenResult) => {
    console.log(process.env.NODE_ENV);
    console.log(result.token);
  })
  .catch((e: FirebaseError) => {
    console.log(process.env.NODE_ENV);
    console.log(e.code + ": " + e.message);
  });

在开发模式下,使用vite,取回 token :

在生产模式,使用 firebase 服务,获取 appCheck/fecth-status-error:

最佳答案

这里是 Firebaser!

您收到的错误是由于 App Check 后端无法验证底层的 reCAPTCHA 证明。

要检查的事项:

  • reCAPTCHA 是否提供了有效的证明,而不是以某种方式认为您的设备是机器人?
  • 为该应用上传到 App Check 的站点 secret 是否与您在该应用中使用的客户端 ID 匹配?

如果您在开发构建中使用调试 token ,这可能解释了为什么它会成功。

https://stackoverflow.com/questions/70880483/

相关文章:

javascript - 根据 HTML 规范对模块脚本执行严格的 MIME 类型检查

python - 在不保留旧父类的情况下用另一个类替换父类

vue.js - 从 axios 中的 response.headers 访问 Set-Cookie

c# - Asp.net 长时间运行的后台任务。最佳实践?

firebase - 为什么 Firebase 动态链接总是空的?

postgresql - 了解全文搜索查询中子句顺序的影响

css - 使用 CSS 模块时从父项覆盖样式的 'correct' 方法是什么?

php - 是什么导致我的 Laravel 8 应用程序出现此查询生成器错误?

SQL 查询 - 当我们在 where 子句中使用主键时更新/删除语句的性能

mysql - Prisma - 唯一约束失败,而架构中没有唯一字段