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 v3 sağlayıcı , reCAPTCHA Enterprise sağlayıcı veya özel bir sağlayıcı kullanarak uygulamanıza Uygulama Kontrolü ekleyin.
Uygulama Kontrolü belirteçlerini arka uç istekleriyle 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 göndermeyin , sorgu parametreleri dahil, çü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 version 9
const { initializeAppCheck, getToken } = require('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 version 8
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. };