2023 年如何在 firebase 电话身份验证 (OTP) 中禁用 reCaptcha?

Rai*_*deR 13 firebase firebase-authentication google-play-integrity-api

过去reCaptcha 被用作 SafetyNet API 的后备。但是,自 2023 年 2 月以来,没有新项目可以再使用 SafetyNet API。看起来后继者 - Play Integrity API - 无法完成与 SafetyNet API 相同的工作。

我一直收到 reCaptcha 验证“验证您不是机器人......”。这不仅适用于“原生 Android 应用程序”,而且我也听到人们抱怨 React Native 或Flutter 应用程序存在这个问题。

在此输入图像描述

我在 Play Console 中启用了 Play Integrity API,并将其链接到我的 Firebase 项目,如以下屏幕截图所示。 在此输入图像描述在此输入图像描述

我还就此联系了 Google 支持人员,但说实话,这非常令人困惑。我们交换了很多电子邮件,并提出了很多使用 SafetyNet API 的建议(这是不可能的,因为它甚至不再在 GCP 上列出)。他们在一封电子邮件中写道:

遗憾的是,我们无法提供 Play Integrity API 电话身份验证实施的时间表。目前,您可以使用 reCAPTCHA 验证进行电话号码身份验证。SafetyNet 弃用与 reCAPTCHA API 无关。两个 SafetyNet API 是独立的,并且 Attestation API 弃用不会影响 reCAPTCHA API。即使迁移到 Play Integrity API 后,您仍然可以使用此 API。

我在这里做错了什么吗?您有什么建议来解决它?

Rai*_*deR 6

// 更新:

正如 Mike Hardy 正确指出的那样,最新版本的 firebase-android-sdk 现在支持此功能。

// 原始答案

也许这不是你们都想听到的答案,但不幸的是,Play Integrity API 目前不支持此用例。

我与 Google 支持人员交换了很多电子邮件。主要的收获是:

[...] 请注意,Play Integrity API 尚未支持 Firebase 电话身份验证 (OTP)。

建议的后备解决方案是进一步使用 SafetyNet Attestation API(如果您的项目是在 2023 年 1 月 31 日之后创建的,则无法开箱即用)。但是,您可以申请使用 SafetyNet Attestation API。坦白地说:我的项目的整个申请过程大约花了三周时间。

如果您获得批准,您必须转到Google API 控制台中的库页面并激活“Android 设备验证 API”。

所以我的项目设置现在如下:

  • Google Cloud Console:通过 App Integrity 将我的应用程序与 Google Play Integrity API 链接起来
  • 将我的 firebase 项目 --> 应用程序检查 --> “我的 Android 应用程序”与 Play Integrity API 链接起来
  • 申请后启用Android设备验证API

它有效:我不再看到验证码了:)


Mik*_*rdy 5

从最新的 firebase-android-sdk(已包含在最新的 react-native-firebase 中)开始,auth 现在支持 Play Integrity。

您需要确保该应用程序确实是从 Play 商店安装的,才能正常运行。