این صفحه به شما نشان میدهد که چگونه با استفاده از ارائهدهنده App Check سفارشی خود ، App Check در یک برنامه Android فعال کنید. وقتی App Check فعال میکنید، مطمئن میشوید که فقط برنامه شما میتواند به منابع Firebase پروژه شما دسترسی داشته باشد.
اگر میخواهید از App Check با ارائهدهنده پیشفرض Play Integrity استفاده کنید، به فعال کردن App Check with Play Integrity در Android مراجعه کنید.
قبل از شروع
اگر قبلاً این کار را نکرده اید ، Firebase را به پروژه اندروید خود اضافه کنید .
منطق سمت سرور ارائه دهنده App Check سفارشی خود را پیاده سازی کنید .
1. کتابخانه App Check به برنامه خود اضافه کنید
در فایل Gradle ماژول (سطح برنامه) خود (معمولا<project>/<app-module>/build.gradle.kts
یا <project>/<app-module>/build.gradle
)، وابستگی را برای App Check اضافه کنید کتابخانه برای اندروید توصیه میکنیم از Firebase Android BoM برای کنترل نسخهسازی کتابخانه استفاده کنید.dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:33.3.0")) // 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:18.0.0") }
2. رابط های App Check را پیاده سازی کنید
ابتدا باید کلاس هایی ایجاد کنید که رابط های AppCheckProvider
و AppCheckProviderFactory
را پیاده سازی کنند.
کلاس AppCheckProvider
شما باید دارای یک متد getToken()
باشد که هر اطلاعاتی را که ارائهدهنده App Check سفارشی شما به عنوان اثبات اصالت نیاز دارد جمعآوری میکند و آن را در ازای توکن App Check به سرویس جذب توکن میفرستد. 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. App Check اولیه کنید
کد اولیه زیر را به برنامه خود اضافه کنید تا قبل از استفاده از Firebase SDK دیگر اجرا شود:
Kotlin+KTX
Firebase.initialize(context) Firebase.appCheck.installAppCheckProviderFactory( YourCustomAppCheckProviderFactory(), )
Java
FirebaseApp.initializeApp(/*context=*/ context); FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance(); firebaseAppCheck.installAppCheckProviderFactory( new YourCustomAppCheckProviderFactory());
مراحل بعدی
هنگامی که کتابخانه App Check در برنامه شما نصب شد، شروع به توزیع برنامه به روز شده بین کاربران خود کنید.
برنامه کلاینت بهروزرسانیشده، به همراه هر درخواستی که به Firebase میکند، نشانههای App Check ارسال میکند، اما محصولات Firebase تا زمانی که اعمال را در بخش App Check کنسول Firebase فعال نکنید، نیازی به معتبر بودن توکنها ندارند.
معیارها را رصد کنید و اجرا را فعال کنید
با این حال، قبل از فعال کردن اعمال، باید مطمئن شوید که انجام این کار باعث اختلال در کاربران قانونی فعلی شما نمی شود. از سوی دیگر، اگر استفاده مشکوک از منابع برنامه خود را مشاهده کردید، ممکن است بخواهید زودتر اجرای آن را فعال کنید.
برای کمک به این تصمیم، میتوانید به معیارهای App Check برای سرویسهایی که استفاده میکنید نگاه کنید:
- معیارهای درخواست App Check برای Realtime Database ، Cloud Firestore ، Cloud Storage و Authentication (بتا) نظارت کنید.
- معیارهای درخواست App Check برای Cloud Functions نظارت کنید .
اجرای App Check فعال کنید
وقتی متوجه شدید که App Check چگونه بر کاربران شما تأثیر می گذارد و آماده ادامه کار هستید، می توانید اجرای App Check فعال کنید:
- اجرای App Check برای Realtime Database ، Cloud Firestore ، Cloud Storage و Authentication (بتا) فعال کنید.
- اجرای App Check برای Cloud Functions فعال کنید .
از App Check در محیط های اشکال زدایی استفاده کنید
اگر بعد از اینکه برنامه خود را برای App Check ثبت کردید، می خواهید برنامه خود را در محیطی اجرا کنید که App Check معمولاً آن را معتبر طبقه بندی نمی کند، مانند شبیه ساز در حین توسعه، یا از یک محیط یکپارچه سازی مداوم (CI)، می توانید یک ساختار اشکال زدایی از برنامه خود ایجاد کنید که از ارائه دهنده اشکال زدایی App Check به جای ارائه دهنده گواهی واقعی استفاده می کند.
به استفاده از App Check با ارائهدهنده اشکالزدایی در Android مراجعه کنید.