Uygulamanızın kendi bünyesinde barındırılan arka uçlar gibi Firebase dışı kaynaklarını koruyabilirsiniz. kullanıma sunduk. Bunun için aşağıdakilerin ikisini de yapmanız gerekir:
- Uygulama istemcinizi her istekle birlikte bir Uygulama Kontrolü jetonu gönderecek şekilde değiştirme arka ucunuza gönderin.
- Arka ucunuzu her istekte geçerli bir uygulama kontrolü jetonu gerektirecek şekilde değiştirin. Özel arka uçtan Uygulama Kontrolü jetonlarını doğrulama bölümünde açıklandığı gibi.
Başlamadan önce
Varsayılan Play Integrity sağlayıcısı veya özel sağlayıcı.
Arka uç istekleriyle birlikte Uygulama Kontrolü jetonları gönderme
Arka uç isteklerinizin geçerli, süresi dolmamış bir Uygulama Kontrolü jetonu içerdiğinden emin olmak için
her isteği getAppCheckToken()
çağrısına ekleyin. Uygulama Kontrolü kitaplığı
gerekirse jetonu yeniler. Jetona şuradan erişebilirsiniz:
dinlemekle geçer.
Geçerli bir jeton edindikten sonra bu jetonu istekle birlikte arka ucunuza gönderin. İlgili içeriği oluşturmak için kullanılan bunu nasıl başaracağınıza ilişkin ayrıntılar size bağlıdır ancak bilgilere Sorgu parametreleri dahil olmak üzere, URL'lerin bir parçası olarak Uygulama Kontrolü jetonları bu cihazlar kazayla sızıntılara ve müdahaleye karşı savunmasız hale gelir. Önerilen jetonun özel bir HTTP başlığında gönderilmesidir.
Örneğin, Güçlendirme özelliğini kullanıyorsanız:
Kotlin+KTX
class ApiWithAppCheckExample { interface YourExampleBackendService { @GET("yourExampleEndpoint") fun exampleData( @Header("X-Firebase-AppCheck") appCheckToken: String, ): Call<List<String>> } var yourExampleBackendService: YourExampleBackendService = Retrofit.Builder() .baseUrl("https://yourbackend.example.com/") .build() .create(YourExampleBackendService::class.java) fun callApiExample() { Firebase.appCheck.getAppCheckToken(false).addOnSuccessListener { appCheckToken -> val token = appCheckToken.token val apiCall = yourExampleBackendService.exampleData(token) // ... } } }
Java
public class ApiWithAppCheckExample { private interface YourExampleBackendService { @GET("yourExampleEndpoint") Call<List<String>> exampleData( @Header("X-Firebase-AppCheck") String appCheckToken); } YourExampleBackendService yourExampleBackendService = new Retrofit.Builder() .baseUrl("https://yourbackend.example.com/") .build() .create(YourExampleBackendService.class); public void callApiExample() { FirebaseAppCheck.getInstance() .getAppCheckToken(false) .addOnSuccessListener(new OnSuccessListener<AppCheckToken>() { @Override public void onSuccess(@NonNull AppCheckToken appCheckToken) { String token = appCheckToken.getToken(); Call<List<String>> apiCall = yourExampleBackendService.exampleData(token); // ... } }); } }
Tekrar oynatma koruması (beta)
Etkinleştirdiğiniz bir uç noktaya istekte bulunurken
oynatma koruması,
isteği, yerine getLimitedUseAppCheckToken()
çağrısıyla sarmalayın
getAppCheckToken()
:
Kotlin+KTX
Firebase.appCheck.limitedUseAppCheckToken.addOnSuccessListener { // ... }
Java
FirebaseAppCheck.getInstance() .getLimitedUseAppCheckToken().addOnSuccessListener( new OnSuccessListener<AppCheckToken>() { @Override public void onSuccess(AppCheckToken appCheckToken) { String token = appCheckToken.getToken(); // ... } } );