簡體   English   中英

SafetyNet 認證失敗 Flutter Firebase 電話認證

[英]SafetyNet Attestation fails Flutter Firebase Phone Authentication

我正在處理我的 flutter 項目之一並嘗試添加 firebase 電話身份驗證,但我遇到了與 safet.net 相關的錯誤。而我可以使用其他身份驗證方法,例如 SignInWithEmailAndPassword。 每當我打電話給 phoneLogin function 時,我都會收到錯誤消息。 我已經在我的模擬器上安裝了 google play 服務。

代碼

        Future phoneLogin(String phone) async {
        BuildContext context;
        try {
          await auth.verifyPhoneNumber(
              phoneNumber: '+91$phone',
              timeout: const Duration(seconds: 30),
              verificationCompleted: (PhoneAuthCredential credentials) async {
                await auth.signInWithCredential(credentials);
              },
              verificationFailed: (FirebaseAuthException exception) {},
              codeSent: (String verificationId, [int forcedResendingToken]) {
                // print('1')
                Navigator.push(
                  context,
                  MaterialPageRoute(
                    builder: (BuildContext context) => OtpPage(phone: phone),
                  ),
                );
              },
              codeAutoRetrievalTimeout: (String abc) {});
          return null;
        } catch (e) {
          return null;
        }
      }

錯誤

    E/zzbf    ( 6483): SafetyNet Attestation fails basic integrity.
    I/zzkn    ( 6483): Provider GmsCore_OpenSSL not available
    W/System  ( 6483): Ignoring header X-Firebase-Locale because its value was null.
    D/AndroidRuntime( 6483): Shutting down VM
    E/AndroidRuntime( 6483): FATAL EXCEPTION: main
    E/AndroidRuntime( 6483): Process: com.oneobit.greenobit, PID: 6483
    E/AndroidRuntime( 6483): java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/browser/customtabs/CustomTabsIntent$Builder;
    E/AndroidRuntime( 6483):    at com.google.firebase.auth.internal.RecaptchaActivity.zza(com.google.firebase:firebase-auth@@20.0.2:13)
    E/AndroidRuntime( 6483):    at com.google.android.gms.internal.firebase-auth-api.zztw.zzb(com.google.firebase:firebase-auth@@20.0.2:7)
    E/AndroidRuntime( 6483):    at com.google.android.gms.internal.firebase-auth-api.zztw.onPostExecute(Unknown Source:2)
    E/AndroidRuntime( 6483):    at android.os.AsyncTask.finish(AsyncTask.java:771)
    E/AndroidRuntime( 6483):    at android.os.AsyncTask.access$900(AsyncTask.java:199)
    E/AndroidRuntime( 6483):    at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:788)
    E/AndroidRuntime( 6483):    at android.os.Handler.dispatchMessage(Handler.java:106)
    E/AndroidRuntime( 6483):    at android.os.Looper.loop(Looper.java:223)
    E/AndroidRuntime( 6483):    at android.app.ActivityThread.main(ActivityThread.java:7656)
    E/AndroidRuntime( 6483):    at java.lang.reflect.Method.invoke(Native Method)
    E/AndroidRuntime( 6483):    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
    E/AndroidRuntime( 6483):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
    E/AndroidRuntime( 6483): Caused by: java.lang.ClassNotFoundException: Didn't find class "androidx.browser.customtabs.CustomTabsIntent$Builder" on path: DexPathList[[zip file "/data/app/~~VMK8TkW9ozBJD9t7dnRn8g==/com.oneobit.greenobit-EtKxl5CBj6rDZiliq4I1ZQ==/base.apk"],nativeLibraryDirectories=[/data/app/~~VMK8TkW9ozBJD9t7dnRn8g==/com.oneobit.greenobit-EtKxl5CBj6rDZiliq4I1ZQ==/lib/x86, /data/app/~~VMK8TkW9ozBJD9t7dnRn8g==/com.oneobit.greenobit-EtKxl5CBj6rDZiliq4I1ZQ==/base.apk!/lib/x86, /system/lib, /system_ext/lib]]
    E/AndroidRuntime( 6483):    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:207)
    E/AndroidRuntime( 6483):    at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
    E/AndroidRuntime( 6483):    at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
    E/AndroidRuntime( 6483):    ... 12 more
    I/Process ( 6483): Sending signal. PID: 6483 SIG: 9
    Lost connection to device.

我已經將 SHA256 密鑰更新到我的 Firebase 控制台。

Firebase 更新了某些內容,其中之一是在將代碼或 OTP 發送到移動設備之前,他們已經包含了驗證碼驗證

要解決此問題,請參見以下內容:

將以下內容添加到project/android/app/build.gradle

implementation "androidx.browser:browser:1.3.0"

將其添加到依賴項部分...

dependencies {

implementation "androidx.browser:browser:1.3.0"
///
}

您可以在這里找到最新版本:android 瀏覽器

原因:

該應用程序會嘗試驗證驗證碼並發送代碼,因為它會嘗試啟動瀏覽器,但由於缺少實現,它無法加載瀏覽器並導致應用程序崩潰。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM