Integração
Permissões em tempo de execução
Caso seu aplicativo não solicite previamente, o Identity solicitará a permissão no momento em que for necessário para CAMERA
. Caso sua política utilize contexto de localização, a sua aplicação deve solicitar a autorização ACCESS_FINE_LOCATION
.
Permissão | Motivo | Obrigatória? |
---|---|---|
CAMERA | Capturar a selfie em políticas com reautenticação facial | Não |
ACCESS_FINE_LOCATION | Obter dados em políticas com contexto de localização | Sim, se a política utilizar contexto de localização |
Iniciando
Primeiro, crie um objeto do tipo Identity
. Este objeto serve para você configurar todas as suas regras de negócio:
Identity identity = new Identity.Builder(String mobileToken, this)
.build();
Identity.Builder
Parâmetro | Obrigatório? |
---|---|
String mobileToken Token de utilização associado à sua conta Identity (veja como obter aqui) | Sim |
Context context Contexto da aplicação | Sim |
.setEmailUrl(String url) Usado para redirecionar o usuário para um link personalizado no fluxo de envio de Email. | Não |
.setPhoneUrl(String url) Usado para redirecionar o usuário para um link personalizado no fluxo de envio de SMS. | Não |
Consultando uma política
Para autenticar um usuário, use o método verifyPolicy
. Você deve informar o CPF do usuário e o identificador da política a ser utilizada.
Parâmetros
Parâmetro | Obrigatório? |
---|---|
String personId CPF do usuário | Sim |
String policyId Identificador da política | Sim |
VerifyPolicyListener listener Listener de resposta | Sim |
Exemplo
identity.verifyPolicy("{personId}", "{policyId}", new VerifyPolicyListener() {
@Override
public void onSuccess(boolean isAuthorized, String attestation) {
if(isAuthorized){
// Usuário autorizado
// Enviar a attestation para seu backend e realizar validação
}else{
// Usuário não autorizado
}
}
@Override
public void onError(Failure failure) {
// Erro ao executar o SDK
// Veja abaixo
}
});
Tratando erros
Alguns erros podem impedir a execução do Identity. Para identificá-los, verifique a instância da classe do objeto Failure
.
instanceof | Descrição | Exemplo |
---|---|---|
PermissionReason | Está faltando alguma permissão obrigatória | Iniciar a autenticação facial sem a permissão de câmera concedida |
AvailabilityReason | O Identity não está disponível para uso. A variável Failure.getMessage() contém instruções para o usuário | O dispositivo está com o armazenamento interno lotado ao instalar o app, não sendo possível instalar o modelo de detecção facial junto |
NetworkReason | Falha de conexão com a internet | O usuário ficou sem internet durante a autenticação facial |
ServerReason | Quando uma requisição recebe um status code de falha | Em teoria, não deve acontecer. Se presenciar algo nesse sentido, comunique-nos! |
SecurityReason | Quando o Identity não pode ser iniciado devido a uma razão de segurança | Quando o Google Security Provider não está atualizando |
StorageReason | Não há espaço no armazenamento interno do dispositivo do usuário | Quando não há espaço no armazenamento interno durante a captura da foto do documento |
LibraryReason | Quando uma biblioteca interna não pode ser iniciada | Esquecer a configuração noCompress acarretará nesta falha no DocumentDetector |
PolicyReason | Você está utilizando uma política que ainda não oferecemos suporte. A variável Failure.getMessage() contém instruções para o desenvolvedor | Utilizar uma política com contexto de localização |
Exemplo
@Override
public void onError(Failure failure) {
if (failure instanceof PermissionReason){
// falta uma permissão ser concedida pelo usuário para iniciar o SDK
} else if (failure instanceof AvailabilityReason){
// a String sdkFailure.getMessage() contém instruções ao usuário
} else if (failure instanceof NetworkReason){
// falha de conexão com a internet
} else if (failure instanceof ServerReason){
// houve algum problema em alguma comunicação com os servidores da CAF, avise-nos!
} else if (failure instanceof SecurityReason){
// alguma razão de segurança no dispositivo do usuário impede a utilização do SDK
} else if (failure instanceof StorageReason){
// solicite a seu usuário para liberar espaço no armazenamento interno
} else if (failure instanceof LibraryReason){
// alguma biblioteca interna encontrou problemas para executar
} else if(failure instanceof PolicyReason){
// você está utilizando uma política que ainda não oferecemos suporte
} else if(failure == null){
// o usuário fechou a activity
}
}