Pular para o conteúdo principal

Liveness (selfie biométrica)

Captura de selfie biométrica com verificação de liveness integrada. O SDK guia o usuário até que um frame biometricamente válido seja obtido via SmartFrames e retorna a imagem em Base64 + JWT.

Capacidade

Este tipo de captura usa a capacidade de Liveness. Para uma visão conceitual de como o Liveness funciona, consulte a página da capacidade Liveness.

Como funciona

O plugin delega para os SDKs nativos subjacentes:

  1. O plugin abre a câmera (Android ou iOS) com o overlay SmartFrame.
  2. O SDK nativo guia o usuário para posicionar o rosto dentro do frame.
  3. Valida o liveness — a sessão só é concluída quando o usuário está fisicamente presente.
  4. Retorna um objeto ResultCamera com base64 e encrypted (JWT) via o canal da plataforma.
Modo de câmera (captura inteligente)

O SDK tem enquadramento inteligente e captura automática habilitados por padrão. Configure o modo de câmera no seu builder da seguinte forma:

UnicoCheckCameraOpener _opener = _unicoCheck
.setAutoCapture(autoCapture: true)
.setSmartFrame(smartFrame: true)
.build();
Iniciando uma captura de liveness
Passo 1 — Implementar UnicoListener

UnicoListener trata os callbacks do ciclo de vida do SDK. Implemente os quatro métodos obrigatórios:

MétodoQuando é chamado
onErrorUnico(error)Ocorreu um erro durante a operação do SDK
onUserClosedCameraManually()O usuário fechou a câmera manualmente
onSystemClosedCameraTimeoutSession()O limite de 40 segundos da sessão foi atingido
onSystemChangedTypeCameraTimeoutFaceInference()Nenhum rosto detectado por 13 segundos — muda para captura manual
class _MyHomePageState extends State<MyHomePage> implements UnicoListener {
late UnicoCheckBuilder _unicoCheck;

@override
void onErrorUnico(UnicoError error) {}

@override
void onUserClosedCameraManually() {}

@override
void onSystemClosedCameraTimeoutSession() {}

@override
void onSystemChangedTypeCameraTimeoutFaceInference() {}
}
Métodos de listener obrigatórios

Todos os quatro métodos de listener acima devem ser criados no seu projeto (mesmo sem nenhuma lógica). Caso contrário, o projeto não compilará com sucesso.

Passo 2 — Implementar os listeners de selfie no UnicoSelfie

Adicione os callbacks de selfie à sua classe de estado:

MétodoDescrição
onSuccessSelfie(ResultCamera result)Captura realizada com sucesso — retorna ResultCamera com base64 (prévia) e encrypted (JWT para a API)
onErrorSelfie(UnicoError error)Captura falhou — retorna um UnicoError com código e descrição
Expiração do token

O intervalo entre a geração do encrypted e o seu envio para a API não deve exceder 10 minutos.

@override
void onSuccessSelfie(ResultCamera result) { }

@override
void onErrorSelfie(UnicoError error) { }
Passo 3 — Chamar openCameraSelfie

O método openCameraSelfie abre a câmera. Ele recebe a implementação do listener UnicoSelfie:

_opener.openCameraSelfie(listener: this);
Coleta de dados de monitoramento

O método openCameraSelfie oferece uma sobrecarga que aceita metadados via UnicoCheckPrepareInfo para auxiliar na identificação da sessão do usuário e do fluxo:

  • externalUserId (String, obrigatório) — Identificador do usuário no seu sistema. Automaticamente hasheado com SHA-256 antes da transmissão.
  • useCase (String, opcional) — Identificador do contexto ou fluxo em execução. Transmitido em texto simples.
_opener.openCameraSelfie(
listener: this,
prepareInfo: UnicoCheckPrepareInfo(
externalUserId: 'external_user_id',
useCase: 'use_case', // opcional
),
);

Para o tratamento completo do resultado, consulte Recebendo o resultado.