Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Chroń zasoby inne niż Firebase za pomocą funkcji App Check na Androida

Zadbaj o dobrą organizację dzięki kolekcji Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.

Za pomocą funkcji Sprawdzanie aplikacji możesz chronić zasoby swojej aplikacji inne niż Firebase, takie jak samodzielnie hostowane backendy. Aby to zrobić, musisz wykonać obie poniższe czynności:

Zanim zaczniesz

Dodaj Sprawdzanie aplikacji do swojej aplikacji, korzystając z domyślnego dostawcy Play Integrity lub dostawcy niestandardowego .

Wysyłaj tokeny sprawdzania aplikacji z żądaniami zaplecza

Aby upewnić się, że żądania zaplecza zawierają prawidłowy, niewygasły token sprawdzania aplikacji, umieść każde żądanie w wywołaniu getAppCheckToken() . Biblioteka sprawdzania aplikacji odświeży token w razie potrzeby i możesz uzyskać dostęp do tokenu w odbiorniku sukcesu metody.

Po uzyskaniu prawidłowego tokena wyślij go wraz z żądaniem do swojego zaplecza. Sposób, w jaki to zrobisz, zależy od Ciebie, ale nie wysyłaj tokenów sprawdzania aplikacji jako części adresów URL , w tym w parametrach zapytania, ponieważ naraża to je na przypadkowe wycieki i przechwycenie. Zalecanym podejściem jest wysłanie tokenu w niestandardowym nagłówku HTTP.

Na przykład, jeśli korzystasz z Retrofitu:

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 tokenResponse) {
                        String appCheckToken = tokenResponse.getToken();
                        Call<List<String>> apiCall =
                                yourExampleBackendService.exampleData(appCheckToken);
                        // ...
                    }
                });
    }
}

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() {
        FirebaseAppCheck.getInstance()
            .getAppCheckToken(false)
            .addOnSuccessListener { tokenResponse ->
                val appCheckToken = tokenResponse.token
                val apiCall = yourExampleBackendService.exampleData(appCheckToken)
                // ...
            }
    }
}