Uso de SecureState

August 26, 2025 · View on GitHub

SecureState es un componente de la biblioteca AppState que le permite almacenar datos confidenciales de forma segura en el Llavero. Es más adecuado para almacenar pequeñas piezas de datos como tokens o contraseñas que necesitan ser encriptadas de forma segura.

Características Clave

  • Almacenamiento Seguro: Los datos almacenados con SecureState se encriptan y se guardan de forma segura en el Llavero.
  • Persistencia: Los datos permanecen persistentes entre los lanzamientos de la aplicación, lo que permite la recuperación segura de valores confidenciales.

Limitaciones del Llavero

Aunque SecureState es muy seguro, tiene ciertas limitaciones:

  • Tamaño de Almacenamiento Limitado: El Llavero está diseñado para pequeñas piezas de datos. No es adecuado para almacenar archivos o conjuntos de datos grandes.
  • Rendimiento: Acceder al Llavero es más lento que acceder a UserDefaults, por lo que debe usarlo solo cuando sea necesario para almacenar de forma segura datos confidenciales.

Ejemplo de Uso

Almacenar un Token Seguro

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("Token de usuario: \(token)")
            } else {
                Text("No se encontró ningún token.")
            }
            Button("Establecer Token") {
                userToken = "secure_token_value"
            }
        }
    }
}

Manejo de la Ausencia de Datos Seguros

Al acceder al Llavero por primera vez, o si no hay ningún valor almacenado, SecureState devolverá nil. Asegúrese de manejar este escenario correctamente:

if let token = userToken {
    print("Token: \(token)")
} else {
    print("No hay ningún token disponible.")
}

Mejores Prácticas

  • Usar para Datos Pequeños: El Llavero debe usarse para almacenar pequeñas piezas de información confidencial como tokens, contraseñas y claves.
  • Evitar Grandes Conjuntos de Datos: Si necesita almacenar grandes conjuntos de datos de forma segura, considere usar encriptación basada en archivos u otros métodos, ya que el Llavero no está diseñado para el almacenamiento de grandes datos.
  • Manejar nil: Siempre maneje los casos en que el Llavero devuelve nil cuando no hay ningún valor presente.

Esta traducción fue generada automáticamente y puede contener errores. Si eres un hablante nativo, te agradecemos que contribuyas con correcciones a través de un Pull Request.