Verwendung von SecureState
August 26, 2025 · View on GitHub
SecureState ist eine Komponente der AppState-Bibliothek, mit der Sie sensible Daten sicher im Schlüsselbund speichern können. Es eignet sich am besten zum Speichern kleiner Datenmengen wie Token oder Passwörter, die sicher verschlüsselt werden müssen.
Hauptmerkmale
- Sichere Speicherung: Mit
SecureStategespeicherte Daten werden verschlüsselt und sicher im Schlüsselbund gespeichert. - Persistenz: Die Daten bleiben über App-Starts hinweg erhalten, was eine sichere Wiederherstellung sensibler Werte ermöglicht.
Einschränkungen des Schlüsselbunds
Obwohl SecureState sehr sicher ist, gibt es bestimmte Einschränkungen:
- Begrenzte Speichergröße: Der Schlüsselbund ist für kleine Datenmengen ausgelegt. Er ist nicht zum Speichern großer Dateien oder Datensätze geeignet.
- Leistung: Der Zugriff auf den Schlüsselbund ist langsamer als der Zugriff auf
UserDefaults. Verwenden Sie ihn daher nur, wenn es erforderlich ist, sensible Daten sicher zu speichern.
Anwendungsbeispiel
Speichern eines sicheren Tokens
import AppState
import SwiftUI
extension Application {
var userToken: SecureState {
secureState(id: "userToken")
}
}
struct SecureView: View {
@SecureState(\.userToken) var userToken: String?
var body: some View {
VStack {
if let token = userToken {
Text("Benutzertoken: \(token)")
} else {
Text("Kein Token gefunden.")
}
Button("Token festlegen") {
userToken = "secure_token_value"
}
}
}
}
Umgang mit dem Fehlen sicherer Daten
Beim ersten Zugriff auf den Schlüsselbund oder wenn kein Wert gespeichert ist, gibt SecureState nil zurück. Stellen Sie sicher, dass Sie dieses Szenario ordnungsgemäß behandeln:
if let token = userToken {
print("Token: \(token)")
} else {
print("Kein Token verfügbar.")
}
Bewährte Praktiken
- Verwendung für kleine Daten: Der Schlüsselbund sollte zum Speichern kleiner sensibler Informationen wie Token, Passwörter und Schlüssel verwendet werden.
- Vermeiden Sie große Datensätze: Wenn Sie große Datensätze sicher speichern müssen, sollten Sie eine dateibasierte Verschlüsselung oder andere Methoden in Betracht ziehen, da der Schlüsselbund nicht für die Speicherung großer Datenmengen ausgelegt ist.
- Behandeln Sie nil: Behandeln Sie immer Fälle, in denen der Schlüsselbund
nilzurückgibt, wenn kein Wert vorhanden ist.
Diese Übersetzung wurde automatisch generiert und kann Fehler enthalten. Wenn Sie Muttersprachler sind, freuen wir uns über Ihre Korrekturvorschläge per Pull Request.