Configuración del proveedor
Opción A: Proveedor + Hook (Recomendado)
Envuelve la raíz de tu aplicación con GuardianProvider. Esto inicializa el SDK y lo expone a todos los componentes secundarios a través del hook useGuardian.
App.tsx
import { GuardianProvider } from '@surtai/guardian-rn';
export default function App() {
return (
<GuardianProvider
environment="production"
collectLocation={true}
>
<Navigation />
</GuardianProvider>
);
}
El SDK no maneja ninguna clave de API. El contexto de cliente y de transacción provienen de un JWT de corta duración que genera tu backend. Consulta Verificar transacciones para más detalles.
Props del proveedor
| Prop | Tipo | Predeterminado | Descripción |
|---|---|---|---|
environment | 'production' | 'sandbox' | 'production' | Entorno del backend |
logLevel | 'debug' | 'info' | 'warn' | 'error' | 'none' | 'warn' | Nivel de registro del SDK |
collectLocation | boolean | false | Habilitar recopilación GPS (requiere permisos) |
collectWifiInfo | boolean | false | Habilitar detalles de red WiFi |
collectSimCardInfo | boolean | false | Habilitar información de SIM/operador (solo Android) |
collectCameraInfo | boolean | false | Habilitar información de cámara |
Opción B: API imperativa
Si prefieres no usar el contexto de React, llama a initialize() directamente al arrancar la aplicación:
index.ts
import { GuardianSDK } from '@surtai/guardian-rn';
GuardianSDK.initialize({
environment: 'production',
logLevel: 'warn',
collectLocation: true,
});
Hook useGuardian
const {
isInitialized, // boolean - true después de que el SDK esté listo
verify, // (jwt: string, options?: VerifyOptions) => Promise<VerificationResult>
collect, // (jwt?: string, options?: CollectOptions) => Promise<CollectResult>
} = useGuardian();
aviso
useGuardian() debe llamarse dentro de un <GuardianProvider>. Llamarlo fuera lanza un error.
Solución de problemas
| Error | Causa | Solución |
|---|---|---|
not_initialized | verify() llamado antes de que el SDK esté listo | Usa GuardianProvider o llama a initialize() al arrancar |
Error del hook useGuardian | Hook usado fuera del proveedor | Envuelve el árbol de componentes con <GuardianProvider> |
invalid_jwt | JWT faltante, malformado o rechazado | Asegúrate de que tu backend genere un JWT fresco por cada llamada y lo pase a verify() |