Inicio rápido
1. Instalar
- Web
- React Native
- iOS
- Android
npm install @surtai/guardian-web@0.3.0
npm install @surtai/guardian-rn@0.3.0
cd ios && pod install && cd ..
En Xcode: File → Add Package Dependencies → ingresa https://github.com/surtTech/surt-guardian-sdk, versión 0.3.0.
dependencies {
implementation("com.surt.guardian:securitysdk:0.3.0")
}
2. Inicializar
- Web
- React Native
- iOS
- Android
Sin paso de inicialización: el SDK web expone una única función estática collect() sin provider y sin configuración. Salta al paso 3.
import { GuardianProvider } from '@surtai/guardian-rn';
export default function App() {
return (
<GuardianProvider environment="production">
<Navigation />
</GuardianProvider>
);
}
import SurtGuardianSDK
GuardianSDK.initialize(
options: GuardianOptions(environment: .production)
)
import com.surt.guardian.GuardianSDK
import com.surt.guardian.core.Environment
import com.surt.guardian.core.GuardianOptions
GuardianSDK.initialize(
context = this,
options = GuardianOptions(environment = Environment.Production)
)
El cliente nunca maneja tu clave de API sp_live_*. Esta reside en tu backend, que genera los JWTs de corta duración usados a continuación.
3. Generar un JWT y verificar
Antes de cada verificación, tu app obtiene un JWT de corta duración desde tu propio backend (que lo genera mediante el endpoint de preflight de Surt). En los ejemplos siguientes, fetchVerifyJwt() es tu función auxiliar que devuelve la cadena del JWT.
Obtén siempre un JWT fresco justo antes de cada llamada a verify(). Cada JWT es de un solo uso; reutilizar uno es rechazado por el backend.
- Web
- React Native
- iOS
- Android
Web es solo de recopilación: el SDK devuelve un payload cifrado que tu backend reenvía a Surt.
import { collect } from '@surtai/guardian-web';
async function handleSignIn() {
const { payload } = await collect({ collectLocation: false });
await fetch('/api/sign-in', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ userId: 'user_123', payload }),
});
// Tu /api/sign-in reenvía `payload` al endpoint de evaluación de Surt
// y decide qué devolver al cliente.
}
import { useGuardian } from '@surtai/guardian-rn';
function LoginScreen() {
const { verify } = useGuardian();
const handleLogin = async () => {
const jwt = await fetchVerifyJwt();
const result = await verify(jwt);
if (result.allowed) {
// Continuar
} else {
// Bloqueado - revisa result.riskLevel
}
};
}
let jwt = try await fetchVerifyJwt()
let result = try await GuardianSDK.shared.verify(jwt: jwt)
if result.allowed {
// Continuar
}
val jwt = fetchVerifyJwt()
val result = GuardianSDK.getInstance().verifySuspend(jwt = jwt)
if (result.allowed) {
// Continuar
}
Próximos pasos
Elige tu plataforma para la guía completa de integración: