Uygulama Kontrolü ile uygulamanızın kendi kendine barındırılan arka uçlar gibi Firebase dışı kaynaklarını koruyabilirsiniz. Bunu yapmak için, aşağıdakilerin ikisini de yapmanız gerekir:
- Bu sayfada açıklandığı gibi, her istekle birlikte arka ucunuza bir Uygulama Kontrolü belirteci göndermek için uygulama istemcinizi değiştirin.
- Özel bir arka uçtan Uygulama Kontrolü belirteçlerini doğrulama bölümünde açıklandığı gibi, her istekte geçerli bir Uygulama Kontrolü belirteci gerektirecek şekilde arka ucunuzu değiştirin.
Sen başlamadan önce
ReCAPTCHA Enterprise sağlayıcısını veya özel bir sağlayıcıyı kullanarak uygulamanıza Uygulama Kontrolü ekleyin.
Arka uç istekleriyle Uygulama Kontrolü belirteçleri gönderin
Uygulama istemcinizde, her istekten önce, appCheck().getToken()
ile geçerli, süresi dolmamış bir Uygulama Kontrolü belirteci alın. Uygulama Kontrolü kitaplığı, gerekirse belirteci yenileyecektir.
Geçerli bir jetonunuz olduğunda, bunu istekle birlikte arka ucunuza gönderin. Bunu nasıl gerçekleştireceğinizin ayrıntıları size bağlıdır, ancak Uygulama Kontrolü belirteçlerini URL'lerin bir parçası olarak, sorgu parametreleri dahil olmak üzere göndermeyin , çünkü bu onları kazara sızıntıya ve ele geçirmeye karşı savunmasız hale getirir. Aşağıdaki örnek, belirteci önerilen yaklaşım olan özel bir HTTP başlığında gönderir.
Web modular API
import { initializeAppCheck, getToken } from 'firebase/app-check'; const appCheck = initializeAppCheck( app, { provider: provider } // ReCaptchaV3Provider or CustomProvider ); const callApiWithAppCheckExample = async () => { let appCheckTokenResponse; try { appCheckTokenResponse = await getToken(appCheck, /* forceRefresh= */ false); } catch (err) { // Handle any errors if the token was not retrieved. return; } // Include the App Check token with requests to your server. const apiResponse = await fetch('https://yourbackend.example.com/yourApiEndpoint', { headers: { 'X-Firebase-AppCheck': appCheckTokenResponse.token, } }); // Handle response from your backend. };
Web namespaced API
const callApiWithAppCheckExample = async () => { let appCheckTokenResponse; try { appCheckTokenResponse = await firebase.appCheck().getToken(/* forceRefresh= */ false); } catch (err) { // Handle any errors if the token was not retrieved. return; } // Include the App Check token with requests to your server. const apiResponse = await fetch('https://yourbackend.example.com/yourApiEndpoint', { headers: { 'X-Firebase-AppCheck': appCheckTokenResponse.token, } }); // Handle response from your backend. };
Tekrar koruması (beta)
Yeniden oynatma korumasını etkinleştirdiğiniz bir uç noktaya istekte bulunurken, getToken()
getLimitedUseToken()
() kullanarak bir belirteç edinin:
import { getLimitedUseToken } from "firebase/app-check";
// ...
appCheckTokenResponse = await getLimitedUseToken(appCheck);