İçindekiler
- 1. flutter_secure_storage Nedir?
- 1.1. Ne Zaman Kullanılır?
- 1.2. Kurulum ve Temel Kullanım
- 1.2.1. 1. Paketi Projeye Ekleme
- 1.2.2. 2. Temel Fonksiyonlar
- 1.2.2.1. Veri Kaydetme
- 1.2.2.2. Veri Okuma
- 1.2.2.3. Veri Silme
- 1.2.2.4. Tüm Verileri Temizleme
- 1.3. Gelişmiş Kullanım
- 1.3.1. 1. Android’de Şifreleme Ayarları
- 1.3.2. 2. iOS’te Keychain Erişim Kontrolü
- 1.3.3. 3. Web’de Güvenli Depolama
flutter_secure_storage Nedir?
flutter_secure_storage, Flutter uygulamalarında hassas verileri (token, şifre, API anahtarı vb.) güvenli bir şekilde saklamak için kullanılan bir pakettir. Bu paket, verileri cihazda şifreleyerek depolar ve platform-native güvenlik çözümlerini kullanır:
- Android’de:
EncryptedSharedPreferences(AES-256 şifreleme) - iOS’te: Keychain (Apple’ın güvenli depolama alanı)
- Web’de: Web Crypto API veya localStorage (şifrelenmiş)
- Linux/Windows/MacOS: libsecret (Linux), Keychain (MacOS), DPAPI (Windows)
Ne Zaman Kullanılır?
- Kullanıcı giriş token’larını saklarken
- Şifre, PIN veya biyometrik verileri depolarken
- API anahtarları gibi hassas bilgileri korurken
⚠️ SharedPreferences ile farkı:
shared_preferencesverileri plain text olarak kaydeder, bu nedenle güvenli değildir.flutter_secure_storageise şifreleme kullanır.
Kurulum ve Temel Kullanım
1. Paketi Projeye Ekleme
pubspec.yaml dosyasına ekleyin:
yaml
dependencies: flutter_secure_storage: ^8.0.0
Ardından terminalde:
bash
flutter pub get
2. Temel Fonksiyonlar

Veri Kaydetme
dart
import 'package:flutter_secure_storage/flutter_secure_storage.dart'; final storage = FlutterSecureStorage(); // String kaydetme await storage.write(key: 'jwt_token', value: 'abc123xyz'); // Integer kaydetme (String'e çevrilmeli) await storage.write(key: 'user_id', value: '12345');
Veri Okuma
dart
String? token = await storage.read(key: 'jwt_token');
print('Token: $token'); // "abc123xyz"
Veri Silme
dart
await storage.delete(key: 'jwt_token');
Tüm Verileri Temizleme
dart
await storage.deleteAll();
Gelişmiş Kullanım
1. Android’de Şifreleme Ayarları
AndroidOptions ile özelleştirme yapabilirsiniz:
dart
final storage = FlutterSecureStorage(
androidOptions: const AndroidOptions(
encryptedSharedPreferences: true, // AES-256 şifreleme
sharedPreferencesName: 'my_secure_data',
),
);
2. iOS’te Keychain Erişim Kontrolü
dart
final storage = FlutterSecureStorage(
iOsOptions: const IOSOptions(
accessibility: KeychainAccessibility.first_unlock, // Cihaz açıldığında erişilebilir
),
);
3. Web’de Güvenli Depolama
dart
final storage = FlutterSecureStorage(
webOptions: const WebOptions(
dbName: 'my_secure_db',
publicKey: 'my_public_key', // Web Crypto API için
),
);