我使用 Flutter 和 Firebase 开发了一个应用程序,该应用程序使用适用于 Android 和 IOS 的电话身份验证功能。除了 Android 版显示验证码外,一切都按预期运行。
为了解决这个问题,文档中说我们需要使用 SafetyNet,但是现在不可能从 Firebase AppChecker 启用它,因为它已被弃用。我一直在使用新的 Play Integrity API,该 API 应该取代 SafetyNet,但目前似乎不起作用(验证码可见)。
如果有人有解决方案,请分享!预先感谢您抽出时间
我最近更新了 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,并且没有更改代码。谢谢。
这是验证码验证过程的屏幕截图:
由于 SafetyNet 已被弃用,我尝试使用 PlayIntegrity 来消除在使用 Firebase 电话身份验证时打开的 ReCaptcha 弹出窗口。
但即使在 Flutter 中启用它并初始化应用程序检查后,ReCaptcha 仍然打开。
await FirebaseAppCheck.instance.activate(
webRecaptchaSiteKey: 'recaptcha-v3-site-key',
androidProvider: AndroidProvider.playIntegrity,
);
Run Code Online (Sandbox Code Playgroud)
otp 消息包含我的项目 URL,而不是应用程序名称。
经过一番搜索后,我发现我需要在 SafetyNet 和 PlayIntegrity 中注册我的应用程序,以免验证码验证失败。但由于 SafetyNet 不接受任何新项目,我无法在其中注册我的应用程序。
我已经尝试了很多,但没有解决这个问题,请帮助我。
dart firebase-authentication flutter google-play-integrity-api