FaceAuthenticator (Descontinuado)
Face match com prova de vida do usuário do seu app, ideal para fluxos de login ou transações financeiras valiosas.
Permissões obrigatórias
No info.plist arquivo, adicione as permissões abaixo:
Permissão
Motivo
Obrigatório?
Privacidade - Descrição de Uso da Câmera
Para capturar a selfie do usuário
Sim
Utilização
Primeiro, instancie um objeto do tipo FaceAuthenticator:
let faceAuthenticator = FaceAuthenticator.Builder(mobileToken: "mobileToken")
// veja a tabela abaixo
.build()FaceAuthenticator.Builder
Parâmetro
Obrigatório?
String mobileToken
Token de uso associado à sua conta CAF
Sim
.setPeopleId(_ peopleId: String)
Identificador do usuário no qual está registrada a face do usuário que realizará o facematch. Atualmente, esse valor aceita apenas o CPF do usuário
Sim
.setAnalyticsSettings(useAnalytics: Bool)
Habilita/desabilita a coleta de dados para analytics
Não. O padrão é true
.setStabilitySensorSettings(message: String?, stabilityThreshold: Double?)
Altera as configurações padrão do sensor de estabilidade. O limite deste sensor está na faixa das duas últimas acelerações coletadas do dispositivo.
Não. O padrão é "Mantenha o telefone parado" e 0,3, respectivamente
.setLayout(layout: PassiveFaceLivenessLayout)
Altera as máscaras do documento para sucesso, falha e normal.
Também permite alterar os botões de som e cancelar, que ficam no topo da tela
Não
.setColorTheme(color: UIColor)
Altere a cor dos botões de som e cancelar que ficam no topo da tela. Também altere a cor dos botões do popup, exibidos antes de cada documento.
Não
.enableSound(enableSound: Bool)
Habilita/desabilita os sons e o ícone de som no SDK
Não. O padrão é true
.setNetworkSettings(requestTimeout:TimeInterval)
Altere as configurações padrão de rede
Não. O padrão é 60 (segundos)
.setImageCaptureSettings(beforePictureInterval: TimeInterval!, enableManualCapture: Bool, timeManualCapture: TimeInterval)
Permite definir a captura por imagem. O atributo beforePictureInterval define o tempo que o usuário deve permanecer com o rosto encaixado na máscara. O enableManualCapture atributo habilita ou desabilita a captura manual. E timeManualCapture define o momento em que a captura manual será habilitada.
Não. O padrão é habilitado. Para beforePictureInterval, o padrão é 2 (segundos). Para enableManualCapture o padrão é true e para timeManualCapture o padrão é 10 (segundos).
.setVideoCaptureSettings(time: TimeInterval)
Método de configuração de captura de vídeo
Não
.setEyesClosedSettings(threshold: Double, isEnable: Bool, errorMessage: String)
Permite personalizar as configurações de validação de olhos fechados do SDK. O método recebe como parâmetro isEnable para habilitar ou desabilitar a validação, limite, valor entre 0,0 e 1,0, e errorMessage, para definir a mensagem caso olhos fechados sejam detectados.
Não. O padrão é true, 0,5 é "Não use óculos escuros e mantenha os olhos abertos".
.setStage(stage: CAFStage)
Permite escolher o ambiente em que o SDK será executado (produção, beta). O método recebe como parâmetro um enum CAFStage para selecionar o ambiente:
Não. O padrão é .PROD
Enum
Descrição
.PROD
Usará a Trust Platform produção para registrar as execuções do SDK.
.BETA
Usará a Trust Platform beta para registrar as execuções do SDK.
Cada ambiente (beta e produção) requer seu próprio mobileToken específico, gerado na Trust Platform do respectivo ambiente.
Depois de criar o FaceAuthenticator objeto de tipo, você pode iniciar o FaceAuthenticatorController passando-o como parâmetro no construtor:
Obtendo o resultado
Para obter o resultado, você deve implementar o FaceAuthenticatorControllerDelegate delegate no seu controlador:
FaceAuthenticatorResult
Parâmetro
Pode ser nulo?
authenticated: Bool
Indicador que informa se a selfie do usuário passou no facematch com a foto armazenada no servidor da CAF com o respectivo CPF
Não
signedResponse: String
Resposta assinada do servidor da CAF que realizou o facematch. Use este parâmetro se quiser uma camada extra de segurança, verificando se a assinatura da resposta não está quebrada, o que pode ser causado por uma requisição interceptada. Se estiver quebrada, há uma forte indicação de interceptação da requisição
Sim, em caso de erro
trackingId: String?
Identificador desta execução em nossos servidores. Se possível, salve este campo e envie-o para nossa API. Dessa forma, teremos mais dados sobre como o usuário se comportou durante a execução
Sim, se o usuário definir useAnalytics = false ou as chamadas de analytics não funcionarem
lensFacing: Int
Define o lado da câmera que foi usado. Use FaceAuthenticatorResult.LENS_FACING_FRONT ou FaceAuthenticatorResult.LENS_FACING_FRONT para validar.
Não
FaceAuthenticatorFailure
Superclasse que leva ao encerramento do SDK. Para descobrir qual foi o motivo, identifique qual classe de objeto tem o isKindOfClass() método, equivalente a instanceof em Java e is em Dart:
isKindOfClass()
Descrição
Exemplo
InvalidTokenReason
O token informado não é válido para o produto correspondente
Parametrize "test123" como token no builder do SDK
PermissionReason
Falta alguma permissão obrigatória para executar o SDK
Iniciar o DocumentDetector sem permissão de câmera concedida
NetworkReason
Falha na conexão com a internet
O usuário estava sem internet durante o facematch no FaceAuthenticator
ServerReason
Quando uma requisição do SDK recebe um código de status de falha
Em teoria, isso não deveria acontecer. Se acontecer, nos avise!
StorageReason
Não há espaço no armazenamento interno do dispositivo do usuário
Quando não há espaço no armazenamento interno ao capturar a foto do documento
InvalidFaceReason
Não há registro de face para o peopleId
Quando o usuário se autentica com um peopleId que não possui registro de face
Exemplos
Personalizando o layout
Você pode personalizar o layout criando um objeto do tipo FaceAuthenticatorLayout e passando-o como parâmetro para o FaceAuthenticatorBuilder:
Atualizado

