Pular para o conteúdo principal
Versão: Guardian v0.1.0

Códigos de Erro

Erros do SDK (SurtError)​

ErroQuando
notInitializedverify() chamado antes de initialize()
invalidJwtJWT ausente, malformado ou rejeitado pelo backend. Gere um JWT novo a cada verify().
networkErrorTimeout ou sem conexão
serverError5xx do backend
attestationFailedFalha na verificação de integridade do dispositivo — geralmente um JWT reutilizado. Gere um JWT novo a cada verify().

As plataformas nativas expõem estes como .notInitialized / .invalidJwt / etc. A ponte do React Native expõe códigos em string: not_initialized, invalid_jwt, attestation_failed, network_error.

Web SDK errors

O SDK Web (@surtai/guardian-web) usa um GuardianError separado com os códigos CRYPTO_UNAVAILABLE, ENCRYPTION_FAILED e INVALID_OPTIONS. Veja Pacote NPM.

Diagnóstico do resultado​

Todo resultado de verify() e collect() inclui um objeto diagnostics. Você o lê diretamente do resultado que já recebe — é aditivo, então o código existente não é afetado. A forma é idêntica em Web, iOS, Android e React Native.

// React Native (verify) — diagnostics está no resultado que você já recebe
const result = await GuardianSDK.verify(jwt);
console.log(result.diagnostics?.location); // ex.: "denied"
console.log(result.diagnostics?.warnings); // ex.: [{ code: "LOCATION_PERMISSION_DENIED", signal: "location" }]

// Web (collect) — diagnostics fica junto ao payload
const { payload, diagnostics } = await collect({ collectLocation: true });
console.log(diagnostics.location);
// iOS (Swift) — no VerificationResult / CollectResult
let result = try await GuardianSDK.shared.verify(jwt: jwt)
print(result.diagnostics.location ?? "n/a")
// Android (Kotlin) — no VerificationResult / CollectResult
val result = GuardianSDK.getInstance().verifySuspend(jwt).getOrThrow()
Log.d("Guardian", result.diagnostics.location ?: "n/a")
CampoValoresSignificado
locationcollected · denied · unavailable · timeout · not_requestedSe a localização do dispositivo foi capturada, ou por que não (ex.: o usuário negou a permissão).
networkIntelcollected · unavailable · not_requestedSe o sinal complementar de inteligência de rede esteve disponível nesta transação.
warningsarray de { code, signal, detail? }Notas estruturadas e não fatais que você pode registrar ou mostrar ao suporte (ex.: LOCATION_PERMISSION_DENIED).
{
"diagnostics": {
"location": "denied",
"networkIntel": "collected",
"warnings": [{ "code": "LOCATION_PERMISSION_DENIED", "signal": "location" }]
}
}
dica

Use diagnostics para explicar resultados aos seus usuários ou à equipe de suporte — por exemplo, pedindo ao usuário para ativar a localização quando location for denied.

Códigos de Status HTTP​

CódigoSignificado
200Sucesso
400JSON malformado ou campo obrigatório ausente
401Bearer JWT inválido ou ausente
403Chave válida mas sem permissão
5xxErro do servidor