如何在 firebase phone-auth (OTP) android 中禁用 reCaptcha?

Sai*_*zib 12 authentication firebase

我最近更新了 firebase 库,没有改变任何其他东西。

  implementation 'com.google.firebase:firebase-auth:20.0.1'
  implementation 'com.google.firebase:firebase-messaging:21.0.0'
  implementation 'com.google.firebase:firebase-storage:19.2.0' 
  implementation 'com.google.android.gms:play-services-auth:19.0.0'
Run Code Online (Sandbox Code Playgroud)

但是每当用户尝试注册时,Recaptcha 都会显示几秒钟,然后有时会在从 firebase auth 收到 OTP 后重定向到网络浏览器 (CustomChromeTab)。大约需要 15-30 秒。如何防止 Recaptcha?但是,我在 firebase 控制台中添加了 SHA1 和 SHA256,并且没有更改代码。谢谢。

这是验证码验证过程的屏幕截图:

在此处输入图片说明

Moh*_*sim 27

大多数情况下,在实现依赖项时,例如:

implementation 'androidx.browser:browser:1.2.0' 
Run Code Online (Sandbox Code Playgroud)

在浏览器中弹出上述窗口。

在这里,是一种成功解决它的方法。

第1步-

在 Google Cloud Console 中,为您的项目启用Android DeviceCheck API。将使用默认的 Firebase API 密钥,并且需要被允许访问 DeviceCheck API。

在此处输入图片说明

第2步-

如果您尚未指定应用的 SHA-256 指纹,请从 Firebase 控制台的“设置”页面执行此操作。有关如何获取应用程序的 SHA-256 指纹的详细信息,请参阅验证您的客户端。

在此处输入图片说明

希望它有效!!!有关更多信息,您还可以检查Google SafetyNet API以在电话身份验证时检查设备中的 Google Play 服务安装。

  • 尝试实现此依赖项,实现“com.google.firebase:firebase-auth”并确保您已指定 SHA1 和 SHA-256,并在保存后将 google-service.json 替换为修改后的 one.ie Firebase 控制台中的 SHA-1 和 SHA-256。 (2认同)
  • 如何在我的 firebase 项目和云控制台项目之间建立连接。他们是完全不同的。我在 firebase 中有 2 个项目。而云控制台中并没有项目。如果我在 Cloud 控制台中创建新项目,如何链接它们。请指导我。@莫哈德·阿西姆 (2认同)
  • 谢谢你!为我工作。使用手机身份验证 2 年,验证码添加引起了问题 - 人们会在窗口打开之前取消,等等。顺便说一句,这现在位于 Firebase 文档中:https://firebase.google.com/docs/auth/android/phone-授权 (2认同)
  • 两年后,SafetyNet API 无法再用于新项目。我正在使用 PlayIntegrity API,并且验证码不断弹出。有任何想法吗? (2认同)

Gen*_*shi 8

不要忘记进入 Firebase 项目设置 > 应用程序检查 > 并在 SafetyNet 中注册 firebase 项目并使用默认时间令牌 1 小时进行完整性注册,您将从手机身份验证 OTP 中删除 reCaptcha!

  • 我已经从 google 控制台以及 firebase 控制台应用程序检查中启用了 Play Integrity,但我仍然看到验证码屏幕。请帮忙!! (3认同)
  • 这里需要注意的一点是,尽管SafetyNet此时已被弃用,但您也必须在SafetyNet中注册应用程序,否则会出现验证码验证。我不知道这是 firebase 的错误还是功能,但这就是它的工作原理。相信我,我已经尝试过多次卸载并重新安装该应用程序,并且需要注册 SafetyNet。 (2认同)