API key güvenliği
- React Native kursu
- Uzman
- Ders 38/47
- 5 dk
API key ve secret yönetimini öğrenirsin.
API key güvenliği
API key'ler uygulamaya gömüldüğünde tersine mühendislikle çıkarılabilir. Obfuscation zorlaştırır ama tam engellemez. Bu yüzden key'leri koda gömmek yerine çevre değişkenleriyle taşımak gerekir.
React Native'de react-native-dotenv ya da react-native-config kullanılır. Key .env dosyasında tutulur; bu dosya .gitignore'a eklenir. Kod process.env.API_KEY ile okur. Üretim derlemesinde key yine pakete gömülür; ama kaynak kodda görünmez. En güvenli yöntem, key'i bir backend proxy'sinde tutmak ve uygulamadan oraya istek atmaktır.
react-native-dotenv kullanımı
react-native-dotenv ile .env dosyasındaki değişkenler koda aktarılır. .env dosyasına API_KEY=abc123 yazarsın. Kod tarafında import { API_KEY } from '@env' ile alırsın.
Bu yöntem key'i kaynak koddan ayırır. Ekip arkadaşların aynı şablon .env.example dosyasını paylaşır; herkes kendi .env'ini yazar. CI'da çevre değişkenleri pipeline'dan verilir. Unutma: üretim derlemesinde key yine pakete gömülür; tam koruma için backend proxy kullan. Yine de kaynak kodun sızması durumunda key doğrudan okunamaz.
Uygulama API key'i çevre değişkeninden al
Bir apiClient.js iskeleti yaz. API_KEY'i '@env' modülünden içe aktar. Bir const apiKey değişkenine ata. Bir fetch çağrısında Authorization başlığına kullan.
Başlangıç kodu
// API_KEY'i @env modülünden içe aktar
const apiKey = null; // API_KEY ile değiştir
function fetchProfile() {
// Authorization başlığına apiKey ekle
return fetch('https://api.example.com/profile');
}Örnek çözüm
import { API_KEY } from '@env';
const apiKey = API_KEY;
function fetchProfile() {
return fetch('https://api.example.com/profile', {
headers: { Authorization: 'Bearer ' + apiKey }
});
}Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Akışı rolüne eşle
| Kavram | Anlamı |
|---|---|
react-native-dotenv |
Çevre değişkeni |
.env |
Key dosyası |
.gitignore |
Dosyayı saklar |
process.env |
Kod tarafında okur |
2 Çevre değişkeni okuma
import { ____ } from '@env';
import { API_KEY } from '@env';
Açıklama: API_KEY @env modülünden içe aktarılır.
3 .env dosyası nereye eklenir?
.env- package.json
- .gitignore Doğru cevap
- app.json
- App.js
Açıklama: .env dosyası .gitignore'a eklenir; depoya gitmez.