Início 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 ..
No Xcode: File → Add Package Dependencies → insira https://github.com/surtTech/surt-guardian-sdk, versão 0.3.0.
dependencies {
implementation("com.surt.guardian:securitysdk:0.3.0")
}
2. Inicializar
- Web
- React Native
- iOS
- Android
Sem passo de inicialização: o SDK web expõe uma única função estática collect() sem provider e sem configuração. Pule para o passo 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)
)
O cliente nunca guarda sua chave de API sp_live_*. Ela vive no seu backend, que gera os JWTs de curta duração usados abaixo.
3. Gerar um JWT e Verificar
Antes de cada verificação, seu aplicativo obtém um JWT de curta duração do seu próprio backend (que o gera via endpoint de preflight da Surt). Nos exemplos abaixo, fetchVerifyJwt() é o seu helper que retorna a string do JWT.
Sempre obtenha um JWT novo imediatamente antes de cada chamada verify(). Cada JWT é de uso único - reutilizar um JWT é rejeitado pelo backend.
- Web
- React Native
- iOS
- Android
Web é apenas collect: o SDK retorna um payload criptografado que seu backend encaminha para 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 }),
});
// Seu /api/sign-in encaminha `payload` para o endpoint evaluate da Surt
// e decide o que retornar ao 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) {
// Prosseguir
} else {
// Bloqueado - verifique result.riskLevel
}
};
}
let jwt = try await fetchVerifyJwt()
let result = try await GuardianSDK.shared.verify(jwt: jwt)
if result.allowed {
// Prosseguir
}
val jwt = fetchVerifyJwt()
val result = GuardianSDK.getInstance().verifySuspend(jwt = jwt)
if (result.allowed) {
// Prosseguir
}
Próximos Passos
Escolha sua plataforma para o guia de integração completo: