Catch up on highlights from Firebase at Google I/O 2023. Learn more

ابدأ باستخدام App Check مع مزود مخصص على Android

توضح لك هذه الصفحة كيفية تمكين التحقق من التطبيق في تطبيق Android ، باستخدام موفر App Check المخصص الخاص بك . عند تمكين التحقق من التطبيق ، فإنك تساعد في التأكد من أن تطبيقك هو الوحيد الذي يمكنه الوصول إلى موارد Firebase الخاصة بمشروعك.

إذا كنت تريد استخدام App Check مع مزود Play Integrity الافتراضي ، فراجع تمكين التحقق من التطبيق باستخدام Play Integrity على Android .

قبل ان تبدأ

1. أضف مكتبة App Check إلى تطبيقك

في ملف Gradle الخاص بالوحدة (على مستوى التطبيق) (عادةً app/build.gradle ) ، أعلن عن تبعية مكتبة App Check Android:

Kotlin+KTX

dependencies {
    implementation 'com.google.firebase:firebase-appcheck:17.0.1'
}

Java

dependencies {
    implementation 'com.google.firebase:firebase-appcheck:17.0.1'
}

2. تنفيذ واجهات التحقق من التطبيق

أولاً ، تحتاج إلى إنشاء فئات تنفذ واجهات AppCheckProvider و AppCheckProviderFactory .

يجب أن يكون لفئة AppCheckProvider الخاصة بك طريقة getToken() ، والتي تجمع أي معلومات يطلبها موفر App Check المخصص كدليل على المصداقية ، ويرسلها إلى خدمة الحصول على الرمز المميز مقابل رمز التحقق من التطبيق. يتعامل App Check SDK مع التخزين المؤقت للرمز المميز ، لذا احصل دائمًا على رمز مميز جديد في تنفيذ getToken() .

Kotlin+KTX

class YourCustomAppCheckToken(
    private val token: String,
    private val expiration: Long
) : AppCheckToken() {
    override fun getToken(): String {
        return token
    }

    override fun getExpireTimeMillis(): Long {
        return expiration
    }
}

class YourCustomAppCheckProvider : AppCheckProvider {
    val token: Task<AppCheckToken>
        get() {
            // Logic to exchange proof of authenticity for an App Check token.
            // ...

            // Refresh the token early to handle clock skew.
            val expMillis: Long = expirationFromServer * 1000 - 60000

            // Create AppCheckToken object.
            val appCheckToken: AppCheckToken =
                    YourCustomAppCheckToken(tokenFromServer, expMillis)

            return appCheckToken!
        }
}

Java

public class YourCustomAppCheckToken extends AppCheckToken {
    private String token;
    private long expiration;

    YourCustomAppCheckToken(String token, long expiration) {
        this.token = token;
        this.expiration = expiration;
    }

    @NonNull
    @Override
    public String getToken() {
        return token;
    }

    @Override
    public long getExpireTimeMillis() {
        return expiration;
    }
}

public class YourCustomAppCheckProvider implements AppCheckProvider {
    @Override
    public Task<AppCheckToken> getToken() {
        // Logic to exchange proof of authenticity for an App Check token and
        //   expiration time.
        // ...

        // Refresh the token early to handle clock skew.
        long expMillis = expirationFromServer * 1000 - 60000;

        // Create AppCheckToken object.
        AppCheckToken appCheckToken =
                YourCustomAppCheckToken(tokenFromServer, expMillis);

        return appCheckToken;
    }
}

أيضًا ، قم بتنفيذ فئة AppCheckProviderFactory التي تنشئ مثيلات لتطبيق AppCheckProvider الخاص بك:

Kotlin+KTX

class YourCustomAppCheckProviderFactory : AppCheckProviderFactory {
    fun create(firebaseApp: FirebaseApp): AppCheckProvider {
        // Create and return an AppCheckProvider object.
        return YourCustomAppCheckProvider(firebaseApp)
    }
}

Java

public class YourCustomAppCheckProviderFactory implements AppCheckProviderFactory {
  @Override
  public AppCheckProvider create(FirebaseApp firebaseApp) {
    // Create and return an AppCheckProvider object.
    return new YourCustomAppCheckProvider(firebaseApp);
  }
}

3. تهيئة فحص التطبيق

أضف رمز التهيئة التالي إلى تطبيقك حتى يتم تشغيله قبل استخدام أي حزم Firebase SDK أخرى:

Kotlin+KTX

FirebaseApp.initializeApp(/*context=*/ this)
val firebaseAppCheck = FirebaseAppCheck.getInstance()
firebaseAppCheck.installAppCheckProviderFactory(
    YourCustomAppCheckProviderFactory.getInstance())

Java

FirebaseApp.initializeApp(/*context=*/ this);
FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance();
firebaseAppCheck.installAppCheckProviderFactory(
    YourCustomAppCheckProviderFactory.getInstance());

الخطوات التالية

بمجرد تثبيت مكتبة App Check في تطبيقك ، ابدأ في توزيع التطبيق المحدث على المستخدمين.

سيبدأ تطبيق العميل المحدث في إرسال رموز التحقق من التطبيق جنبًا إلى جنب مع كل طلب يقدمه إلى Firebase ، لكن منتجات Firebase لن تتطلب أن تكون الرموز المميزة صالحة حتى تقوم بتمكين التنفيذ في قسم التحقق من التطبيق في وحدة تحكم Firebase.

مراقبة المقاييس وتمكين الإنفاذ

قبل أن تقوم بتمكين التنفيذ ، يجب أن تتأكد من أن القيام بذلك لن يؤدي إلى تعطيل المستخدمين الشرعيين الحاليين لديك. من ناحية أخرى ، إذا كنت ترى استخدامًا مشبوهًا لموارد تطبيقك ، فقد ترغب في تمكين التنفيذ عاجلاً.

للمساعدة في اتخاذ هذا القرار ، يمكنك الاطلاع على مقاييس التحقق من التطبيقات للخدمات التي تستخدمها:

تفعيل فرض التحقق من التطبيق

عندما تفهم كيف سيؤثر فحص التطبيق على المستخدمين لديك وأنت مستعد للمتابعة ، يمكنك تمكين فرض التحقق من التطبيق:

استخدام التحقق من التطبيق في بيئات التصحيح

إذا كنت ترغب ، بعد تسجيل تطبيقك في App Check ، في تشغيل التطبيق في بيئة لا يصنفها App Check عادةً على أنها صالحة ، مثل المحاكي أثناء التطوير ، أو من بيئة تكامل مستمرة (CI) ، يمكنك إنشاء إصدار تصحيح لتطبيقك يستخدم موفر تصحيح أخطاء App Check بدلاً من موفر تصديق حقيقي.

راجع استخدام التحقق من التطبيق مع موفر تصحيح الأخطاء على Android .