मान लीजिए कि आप एक वर्जन कंट्रोल सिस्टम का उपयोग कर रहे हैं और आपका प्रोजेक्ट उन सेवाओं का उपयोग करता है जिनके लिए API कुंजियों की आवश्यकता होती है। सब कुछ ठीक है जब वे आपकी स्थानीय मशीन पर होते हैं, लेकिन आप इन API कुंजियों को दुनिया के साथ साझा नहीं करना चाहते।
तो आप अपने एप्लिकेशन के भीतर अपनी API कुंजियों को कैसे संरक्षित रख सकते हैं, लेकिन जब आप अपना कोड अपने रिपॉजिटरी में अपलोड करते हैं तो उन्हें छिपा सकते हैं?
आप शायद अपने एप्लिकेशन के अंदर अपनी API कुंजियों को सामान्य तरीके से उपयोग करने में सक्षम होना चाहते हैं, लेकिन उन्हें उजागर भी नहीं करना चाहते।
सीक्रेट्स क्या हैं?
यहीं सीक्रेट्स आते हैं। उन चीजों के समान जो आप केवल अपने तक रखते हैं, लेकिन एक डेवलपर तरीके से।
सीक्रेट्स महत्वपूर्ण जानकारी का प्रतिनिधित्व कर सकते हैं जो आपके एप्लिकेशन को संचालित करने के लिए आवश्यक है, लेकिन प्रोजेक्ट के बाहर काम करने वाले किसी भी व्यक्ति को दिखाई नहीं देनी चाहिए।
ये API कुंजियाँ या प्राधिकरण टोकन हो सकते हैं, लेकिन संक्षेप में एक सीक्रेट प्राधिकरण जानकारी का कोई भी टुकड़ा है जिसका उपयोग केवल आप और केवल आप द्वारा किया जाना चाहिए। यह इस बात के समान है कि आप अपनी वेबसाइट का पासवर्ड किसी और के साथ साझा नहीं करना चाहते।
🚨 अस्वीकरण: ध्यान रखें कि इस लेख में प्रदान किया गया समाधान आपके वर्जन कंट्रोल सिस्टम से आपके सीक्रेट्स को उजागर नहीं करने के लिए काम करता है। लेकिन चूंकि वे आपके एप्लिकेशन का हिस्सा हैं, उन्हें अभी भी आपके APK को डीकंपाइल करके खोजा जा सकता है।
अपने सीक्रेट्स को सुरक्षित कैसे रखें
आपके प्रोजेक्ट में, आपके प्रोजेक्ट की रूट डायरेक्टरी के तहत एक local.properties फाइल होनी चाहिए
यह सुनिश्चित करने के लिए कि यह आपके वर्जन कंट्रोल सिस्टम द्वारा अनदेखा की जाती है, .gitignore फाइल खोलें और देखें कि यह वहां पाई जाती है:
आपको अपने प्रोजेक्ट में Secrets Gradle प्लगइन आयात करने की आवश्यकता होगी।
ऐसा करने के लिए, अपने प्रोजेक्ट के रूट build.gradle फाइल पर जाएं और निम्नलिखित लाइन पेस्ट करें:
buildscript { dependencies { id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin' version '2.0.1' apply false } }
अगला, अपने ऐप के build.gradle फाइल पर जाएं और निम्नलिखित लाइन पेस्ट करें:
plugins { ... id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin' }
अपनी API कुंजी को local.properties फाइल के अंदर जोड़ें:
आप अपने AndroidManifest.xml फाइल के अंदर एक मेटा-डेटा टैग जोड़कर अपने सीक्रेट का उपयोग कर सकते हैं अपने एप्लिकेशन टैग के अंदर:
<application android:allowBackup="true" ..... > <activity> .... </activity> <meta-data android:name="YOUR_API_KEY_NAME" /// यहां कोई भी मान चुनें android:value="${API_KEY_NAME}"/> /// वह नाम लिखें जो आपने अपनी local.properties फाइल के अंदर दिया था </application>
अपनी API कुंजी तक पहुंचने के लिए, आप PackageManager का उपयोग करके मेटा डेटा प्राप्त कर सकते हैं:
val applicationInfo: ApplicationInfo = application.packageManager .getApplicationInfo(application.packageName, PackageManager.GET_META_DATA) val apiKey = applicationInfo.metaData["YOUR_API_KEY_NAME"]
वैकल्पिक रूप से, आप इसे प्राप्त करने के लिए BuildConfig ऑब्जेक्ट का भी उपयोग कर सकते हैं:
BuildConfig.YOUR_API_KEY_NAME
बस। अब आप निश्चिंत हो सकते हैं कि आपके सीक्रेट्स आपके वर्जन कंट्रोल सिस्टम द्वारा उजागर नहीं किए जाएंगे।
अपने सीक्रेट्स को सुरक्षित रखने का आनंद लें। ㊙️
मैंने इसे अपने हालिया प्रोजेक्ट्स में से एक पर उपयोग किया है, और आप सोर्स कोड (सीक्रेट्स के बिना) यहां देख सकते हैं।
और यदि आप मेरे द्वारा लिखे गए अन्य लेख देखना चाहते हैं, तो आप यहां जा सकते हैं।
मुफ्त में कोड करना सीखें। freeCodeCamp का ओपन सोर्स पाठ्यक्रम 40,000 से अधिक लोगों को डेवलपर्स के रूप में नौकरी पाने में मदद कर चुका है। शुरू करें