Firebase को छोड़कर, अपने ऐप्लिकेशन के संसाधनों को सुरक्षित रखा जा सकता है. उदाहरण के लिए, खुद होस्ट किए गए बैकएंड, को ऐप्लिकेशन की जांच करने की सुविधा मिलती है. ऐसा करने के लिए, आपको ये दोनों काम करने होंगे:
- अपने ऐप्लिकेशन क्लाइंट में बदलाव करें, ताकि वह हर अनुरोध के साथ App Check टोकन भेज सके अपने बैकएंड के लिए उपलब्ध है, जैसा कि इस पृष्ठ पर बताया गया है.
- अपने बैकएंड में बदलाव करें, ताकि हर अनुरोध के साथ एक मान्य ऐप्लिकेशन चेक टोकन ज़रूरी हो. जैसा कि कस्टम बैकएंड से, ऐप्लिकेशन की जांच वाले टोकन की पुष्टि करने में बताया गया है.
शुरू करने से पहले
डिफ़ॉल्ट के तौर पर सेट किए गए किसी ऐप्लिकेशन का इस्तेमाल करके, अपने ऐप्लिकेशन में ऐप्लिकेशन की जांच करने की सुविधा जोड़ें Play को पूरी सुरक्षा देने की सुविधा देने वाली कंपनी या कस्टम कंपनी चुनें.
बैकएंड अनुरोधों के साथ, ऐप्लिकेशन की जांच वाले टोकन भेजें
यह पक्का करने के लिए कि आपके बैकएंड अनुरोधों में ऐप्लिकेशन की जांच के लिए टोकन, मान्य और उसकी समयसीमा खत्म न हुई हो,
getAppCheckToken()
को किए जाने वाले कॉल में हर अनुरोध को शामिल करें. App Check लाइब्रेरी
ज़रूरत पड़ने पर टोकन को रीफ़्रेश कर देगा और टोकन को यहां जाकर ऐक्सेस कर सकता है:
का सबसे अहम हिस्सा है.
आपको मान्य टोकन मिलने के बाद, उसे अपने बैकएंड पर अनुरोध के साथ भेजें. कॉन्टेंट बनाने यह आप पर निर्भर करता है कि आप इसे कैसे पूरा करते हैं, लेकिन यूआरएल के हिस्से के तौर पर ऐप्लिकेशन की जांच के टोकन. इसमें क्वेरी पैरामीटर भी शामिल हैं. इनके अलावा, इनमें गलती से होने वाले लीक और इंटरसेप्शन का खतरा ज़्यादा होता है. इसका सुझाव टोकन को किसी कस्टम एचटीटीपी हेडर में भेजना होता है.
उदाहरण के लिए, अगर Retrofit का इस्तेमाल किया जाता है, तो:
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); // ... } }); } }
रीप्ले प्रोटेक्शन (बीटा वर्शन)
किसी ऐसे एंडपॉइंट को अनुरोध करते समय जिसके लिए आपने अनुरोध किया है
फिर से चलाने पर मिलने वाली सुरक्षा,
अनुरोध को इसके बजाय getLimitedUseAppCheckToken()
को कॉल में रैप करें
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(); // ... } } );