Configuração do Provider
Opção A: Provider + Hook (Recomendado)
Envolva a raiz do seu aplicativo com GuardianProvider. Isso inicializa o SDK e o expõe a todos os componentes filhos via hook useGuardian.
App.tsx
import { GuardianProvider } from '@surtai/guardian-rn';
export default function App() {
return (
<GuardianProvider
environment="production"
collectLocation={true}
>
<Navigation />
</GuardianProvider>
);
}
O SDK não guarda uma chave de API. O contexto de cliente e de transação vem de um JWT de curta duração que o seu backend gera. Veja Verificar Transações para mais detalhes.
Props do Provider
| Prop | Tipo | Padrão | Descrição |
|---|---|---|---|
environment | 'production' | 'sandbox' | 'production' | Ambiente do backend |
logLevel | 'debug' | 'info' | 'warn' | 'error' | 'none' | 'warn' | Verbosidade de log do SDK |
collectLocation | boolean | false | Habilitar coleta de GPS (requer permissões) |
collectWifiInfo | boolean | false | Habilitar detalhes de rede WiFi |
collectSimCardInfo | boolean | false | Habilitar informações de SIM/operadora (somente Android) |
collectCameraInfo | boolean | false | Habilitar informações de câmera |
Opção B: API Imperativa
Se preferir não usar o contexto React, chame initialize() diretamente na inicialização do aplicativo:
index.ts
import { GuardianSDK } from '@surtai/guardian-rn';
GuardianSDK.initialize({
environment: 'production',
logLevel: 'warn',
collectLocation: true,
});
Hook useGuardian
const {
isInitialized, // boolean - true após o SDK estar pronto
verify, // (jwt: string, options?: VerifyOptions) => Promise<VerificationResult>
collect, // (jwt?: string, options?: CollectOptions) => Promise<CollectResult>
} = useGuardian();
aviso
useGuardian() deve ser chamado dentro de um <GuardianProvider>. Chamá-lo fora gera um erro.
Solução de Problemas
| Erro | Causa | Solução |
|---|---|---|
not_initialized | verify() chamado antes do SDK estar pronto | Use GuardianProvider ou chame initialize() na inicialização |
Erro no hook useGuardian | Hook usado fora do provider | Envolva a árvore de componentes com <GuardianProvider> |
invalid_jwt | JWT ausente, malformado ou rejeitado | Garanta que seu backend gere um JWT novo a cada chamada e o passe para verify() |