23 lines
832 B
Swift
23 lines
832 B
Swift
import Foundation
|
|
import LocalData
|
|
|
|
extension StorageKeys {
|
|
/// Stores user credentials securely in keychain.
|
|
/// Configurable accessibility and access control.
|
|
struct CredentialsKey: StorageKey {
|
|
typealias Value = Credential
|
|
|
|
let name = "user_credentials"
|
|
let domain: StorageDomain = .keychain(service: "com.example.securestorage")
|
|
let security: SecurityPolicy
|
|
let serializer: Serializer<Credential> = .json
|
|
let owner = "SampleApp"
|
|
let availability: PlatformAvailability = .phoneOnly
|
|
let syncPolicy: SyncPolicy = .never
|
|
|
|
init(accessibility: KeychainAccessibility = .afterFirstUnlock, accessControl: KeychainAccessControl? = nil) {
|
|
self.security = .keychain(accessibility: accessibility, accessControl: accessControl)
|
|
}
|
|
}
|
|
}
|