Códigos de erro
Códigos de estado HTTP
| Código | Significado |
|---|---|
200 | Sucesso |
400 | Pedido inválido: campo obrigatório em falta ou JSON mal formado |
401 | Não autorizado: chave API ou token inválido ou em falta |
403 | Proibido: chave válida mas permissões insuficientes |
404 | Não encontrado: cliente, sessão ou recurso não encontrado |
429 | Demasiados pedidos: limite de taxa excedido |
500 | Erro interno do servidor |
Tipos de estado de sessão
As sessões do FaceGuard têm um estado com etiqueta interna:
| Tipo de estado | Campos | Descrição |
|---|---|---|
in_progress | stages | Sessão ativa, utilizador está no fluxo de verificação |
completed | outcome, stages, completed_at | Sessão concluída |
bypassed | expires_at, completed_at | Cliente tem um bypass concedido pelo administrador |
Resultados completados
| Resultado | Descrição |
|---|---|
passed | Rosto correspondeu à foto base |
failed | Rosto não correspondeu |
Motivos de fecho por postMessage
Eventos emitidos pelo FaceGuard para a aplicação anfitriã:
| Motivo | Payload | Descrição |
|---|---|---|
approved | { confidence: number } | Rosto verificado com sucesso |
rejected | { confidence: number } | Rosto não correspondeu |
canceled | Utilizador tocou em X para fechar | |
bypass_active | { bypass_expires_at: string } | Cliente tem bypass ativo |
no_base_photo | Sem foto registada para comparar | |
error | { error: string } | Problema de câmara, erro de rede, token expirado, etc. O valor de error é um código tipado — ver abaixo. |
Códigos de erro de câmara
Quando a câmara do utilizador não pode ser iniciada, o FaceGuard emite { action: 'close', reason: 'error', error: <código> } com um dos códigos abaixo. Pode usar o código para mostrar uma UI de recuperação específica.
| Código | Causa subjacente | Orientação sugerida |
|---|---|---|
camera_permission_denied | O utilizador (ou o navegador / SO) negou o acesso à câmara (NotAllowedError) | Peça ao utilizador para permitir o acesso à câmara nas definições do site (web) ou Definições → a sua app (WebView móvel) |
camera_unavailable | Não há câmara no dispositivo (NotFoundError) | Sugira usar um dispositivo com câmara |
camera_in_use | Outra app ou separador está a usar a câmara (NotReadableError, TrackStartError) | Peça ao utilizador para fechar as outras apps ou separadores que a usam |
camera_constraints | Resolução / orientação pedida não suportada (OverconstrainedError) | Raro — geralmente indica uma limitação de hardware |
camera_insecure_context | A página não é servida por HTTPS, ou o iframe não tem allow="camera" (SecurityError) | Verifique se o host usa HTTPS e que o iframe tem allow="camera" |
camera_unknown | Catch-all para falhas inesperadas de getUserMedia | Tentativa genérica / contactar suporte |
Estados de resultado do SDK
Ao usar FaceGuard.verify():
| Estado | Confiança | Erro | Descrição |
|---|---|---|---|
approved | 0-100 | Rosto verificado | |
rejected | 0-100 | Rosto não correspondeu | |
canceled | - | Utilizador fechou | |
error | string | Algo correu mal. error é um dos códigos de câmara acima, 'no_base_photo', ou outra string. |
Pontuação de confiança
A pontuação de confiança (0-100) representa a similaridade entre o rosto capturado e a foto base registada. Pontuações mais altas indicam uma correspondência mais forte.