สมมติว่าคุณกำลังใช้ระบบควบคุมเวอร์ชันและโปรเจ็กต์ของคุณใช้บริการที่ต้องใช้คีย์ API ทุกอย่างจะดีเมื่ออยู่บนเครื่องของคุณ แต่คุณไม่ต้องการแชร์คีย์ API เหล่านี้กับโลก
ดังนั้นคุณจะรักษาคีย์ API ของคุณไว้ในแอปพลิเคชันของคุณได้อย่างไร แต่ยังซ่อนคีย์เหล่านั้นเมื่อคุณอัปโหลดโค้ดไปยังที่เก็บของคุณ
คุณอาจต้องการให้ยังคงใช้คีย์ API ของคุณได้ตามปกติภายในแอปพลิเคชันของคุณ แต่อย่าเปิดเผยคีย์เหล่านี้ด้วย
ความลับคืออะไร
นั่นคือสิ่งที่ความลับ เข้ามาสิ คล้ายกับที่คุณเก็บไว้คนเดียว แต่ในลักษณะของนักพัฒนา
ข้อมูลลับสามารถแสดงข้อมูลสำคัญที่แอปพลิเคชันของคุณต้องการเพื่อดำเนินการ แต่ไม่ควรปรากฏให้ใครก็ตามที่ทำงานนอกโครงการเห็น ป>
สิ่งเหล่านี้อาจเป็นคีย์ API หรือโทเค็นการอนุญาต แต่โดยพื้นฐานแล้ว ความลับคือข้อมูลการอนุญาตใดๆ ที่คุณและคุณเท่านั้นที่ควรใช้ คล้ายกับการที่คุณไม่ต้องการเปิดเผยรหัสผ่านของคุณไปยังเว็บไซต์กับบุคคลอื่น
🚨 ข้อจำกัดความรับผิดชอบ:โปรดทราบว่าวิธีแก้ปัญหาที่ให้ไว้ในบทความนี้ใช้ได้ผลในกรณีที่ไม่เปิดเผยความลับของคุณจากระบบควบคุมเวอร์ชันของคุณ แต่เนื่องจากสิ่งเหล่านี้เป็นส่วนหนึ่งของแอปพลิเคชันของคุณ คุณจึงยังสามารถค้นพบได้โดยการถอดรหัส APK ของคุณ
วิธีรักษาความลับของคุณให้ปลอดภัย
ในโปรเจ็กต์ของคุณ คุณควรมี local.properties ไฟล์ภายใต้ไดเร็กทอรีรากของโครงการของคุณ
เพื่อให้แน่ใจว่าระบบควบคุมเวอร์ชันของคุณละเว้นมัน ให้เปิดไฟล์ .gitignore และดูว่าพบไฟล์นั้นอยู่ที่นั่น:
คุณจะต้องนำเข้าปลั๊กอิน Secrets Gradle ไปยังโปรเจ็กต์ของคุณ
หากต้องการทำสิ่งนี้ ให้ไปที่ไฟล์ root 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" /// Choose any value here
android:value="${API_KEY_NAME}"/> /// Write the name you gave inside your local.properties file
</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 คนได้งานในตำแหน่งนักพัฒนา เริ่มต้น