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

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

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

قبل ان تبدأ

1. أضف مكتبة التحقق من التطبيق إلى تطبيقك

في ملف Gradle الخاص بوحدتك (على مستوى التطبيق) (عادةً <project>/<app-module>/build.gradle.kts أو <project>/<app-module>/build.gradle )، أضف التبعية لفحص التطبيق مكتبة لالروبوت. نوصي باستخدام Firebase Android BoM للتحكم في إصدار المكتبة.

dependencies {
    // Import the BoM for the Firebase platform
    implementation(platform("com.google.firebase:firebase-bom:32.7.2"))

    // Add the dependency for the App Check library
    // When using the BoM, you don't specify versions in Firebase library dependencies
    implementation("com.google.firebase:firebase-appcheck")
}

باستخدام Firebase Android BoM ، سيستخدم تطبيقك دائمًا إصدارات متوافقة من مكتبات Firebase Android.

(بديل) أضف تبعيات مكتبة Firebase دون استخدام BoM

إذا اخترت عدم استخدام Firebase BoM، فيجب عليك تحديد كل إصدار من مكتبة Firebase في سطر التبعية الخاص به.

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

dependencies {
    // Add the dependency for the App Check library
    // When NOT using the BoM, you must specify versions in Firebase library dependencies
    implementation("com.google.firebase:firebase-appcheck:17.1.2")
}
هل تبحث عن وحدة مكتبة خاصة بـ Kotlin؟ بدءًا من أكتوبر 2023 (Firebase BoM 32.5.0) ، يمكن لمطوري Kotlin وJava الاعتماد على وحدة المكتبة الرئيسية (لمزيد من التفاصيل، راجع الأسئلة الشائعة حول هذه المبادرة ).

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

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

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

Kotlin+KTX

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

class YourCustomAppCheckProvider(firebaseApp: FirebaseApp) : AppCheckProvider {
    override fun getToken(): Task<AppCheckToken> {
        // Logic to exchange proof of authenticity for an App Check token and
        //   expiration time.
        // ...

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

        // Create AppCheckToken object.
        val appCheckToken: AppCheckToken = YourCustomAppCheckToken(tokenFromServer, expMillis)
        return Tasks.forResult(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 {
    public YourCustomAppCheckProvider(FirebaseApp firebaseApp) {
        // ...
    }

    @NonNull
    @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 * 1000L - 60000L;

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

        return Tasks.forResult(appCheckToken);
    }
}

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

Kotlin+KTX

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

Java

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

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

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

Kotlin+KTX

Firebase.initialize(context)
Firebase.appCheck.installAppCheckProviderFactory(
    YourCustomAppCheckProviderFactory(),
)

Java

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

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

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

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

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

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

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

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

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

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

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

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