npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

passive-face-liveness-ionic-nosentry

v1.0.2

Published

PassiveFaceLivenessPlugin

Downloads

10

Readme

PassiveFaceLiveness - Ionic Plugin

Plugin que chama os SDKs nativos em Android e iOS. Caso tenha alguma dúvida, envie um email para o nosso Head of Mobile

Atualmente, os documentos suportados são RG, CNH, RNE e CRLV. Caso tenha alguma sugestão de outro documento, contate-nos!

Políticas de privacidade e termos e condições de uso

Ao utilizar nosso plugin, certifique-se que você concorda com nossas Políticas de privacidade e nossos Termos e condições de uso.

Configurações

Android

No arquivo ROOT_PROJECT/android/app/build.gradle, adicione:

android {

    ...

    dataBinding.enabled = true

    compileOptions {
        sourceCompatibility = JavaVersion.VERSION_1_8
        targetCompatibility = JavaVersion.VERSION_1_8
    }
}

Importe o pacote e chame o método add() dentro da inicialização em android/app/src/main/java/io/ionic/starter/MainActivity.java:


import com.passive.PassiveFaceLivenessPlugin;

public class MainActivity extends BridgeActivity {
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    registerPlugin(PassiveFaceLivenessPlugin.class);
  }
}

iOS

No arquivo ROOT_PROJECT/ios/App/Podfile, adicione no final do arquivo:

source 'https://github.com/combateafraude/iOS.git'
source 'https://cdn.cocoapods.org/' # ou 'https://github.com/CocoaPods/Specs' se o CDN estiver fora do ar

Por último, adicione a permissão de câmera no arquivo ROOT_PROJECT/ios/App/Runner/Info.plist:

<key>NSCameraUsageDescription</key>
<string>To read the documents</string>

Ionic

Adicione o plugin no seu arquivo ROOT_PROJECT/package.json:

"dependencies": {
    "passive-face-liveness-plugin": "https://github.com/combateafraude/Ionic/archive/refs/tags/passive-face-liveness-v6.1.0.tar.gz"
}

Após, execute:

  1. npm install
  2. ionic capacitor build < platform > [ options ]

Importando


import {PassiveFaceLiveness} from 'passive-face-liveness-plugin';

Utilizando


    let passiveFaceLivenessor = new PassiveFaceLiveness();
    passiveFaceLivenessor.setMobileToken = '<your mobile token>';

    const response = await passiveFaceLivenessor.start();

    if(response.result == "SUCCESS"){
      // Sucesso
    }else if(response.result == "FAILURE"){
      // Falha. Confira reponse.type e response.message
    }else{
      // Usuário fechou a tela
    }

Customizações gerais

| PassiveFaceLiveness | | --------- | | .setPeopleId(String peopleId)CPF do usuário que está utilizando o plugin à ser usado para detecção de fraudes via analytics | | .setAnalyticsSettings(bool useAnalytics)Habilita/desabilita a coleta de dados para maximização da informação antifraude. O padrão é true | | .enableSound(bool enable)Habilita/desabilita os sons. O padrão é true | | .setNetworkSettings(int requestTimeout)Altera as configurações de rede padrão. O padrão é 60 segundos | | .setShowPreview(ShowPreview showPreview) Preview para verificação de qualidade da foto | | .setAndroidSettings(AndroidSettings androidSettings)Customizações somente aplicadas em Android | | .setIosSettings(IosSettings iosSettings)Customizações somente aplicadas em iOS | | .setCaptureMode(CaptureMode captureMode ) Define as configurações de captura | | .setEyesClosedSettings(enable: boolean, threshold?:number ) Permite customizar as configurações de validação de olhos abertos do SDK. O método espera como parâmetro enable para habilitar ou não a validação, e threshold, valor entre 0.0 e 1.0 |

| CaptureMode | | --------- | | videoCapture: VideoCapture(use: boolean, time: number) Configura a captura por vídeo | | imageCapture: ImageCapture(use: boolean, beforePictureMillis: number, afterPictureMillis: number)Configura a captura por foto |

Exemplo de uso
    let imageCapture = new ImageCapture({use: true});
    let captureMode = new CaptureMode({imageCapture: imageCapture});
    passiveFaceLiveness.setCaptureMode = captureMode;

| ShowPreview | | --------- | | bool showHabilita/Desabilita preview | | String titleTítulo | | String subTitleSubtítulo | | String confirmLabelTexto do botão de confirmação | | String retryLabelTexto do botão de capturar novamente |

Android

| AndroidSettings constructor | | --------- | | PassiveFaceLivenessCustomizationAndroid customizationCustomização do layout em Android da activity | | CaptureSettings captureSettingsConfiguraçōes de tempos de estabilização para a captura da selfie | | SensorSettingsAndroid sensorSettingsCustomização das configurações dos sensores de captura | | int showButtonTimeAltera o tempo para a exibição do botão de captura manual. O padrão é 20000 milisegundos | | bool useEmulatorPermite habilitar/desabilitar o uso de dispositivos emulados no SDK, recomendamos desabilitar o uso dos emuladores por questões de segurança. O padrão é false | | bool useRootPermite habilitar/desabilitar o uso de dispositivos com root no SDK, recomendamos desabilitar o uso desses dispositivos por questões de segurança. O padrão é false | | bool useDeveloperModePermite habilitar/desabilitar o uso de dispositivos com o modo de desenvolvedor Android ativado. Recomendamos desabilitar o uso desses dispositivos por questões de segurança. O padrão é False | | bool useAdbPermite habilitar/desabilitar o uso do modo de depuração Android Debug Bridge (ADB). Recomendamos desabilitar o uso desses dispositivos por questões de segurança. O padrão é False | | bool useDebugPermite o uso do app em modo debug quando true. Não é recomendado ativar esta opção, utilize apenas para fins de testes. O padrão é False | | bool enableBrightnessIncreaseHabilita/desabilita o incremento de brilho do dispositivo do dispositivo na abertura do SDK |

Exemplo de uso
   let passiveFaceLiveness = new PassiveFaceLiveness();

   passiveFaceLiveness.setAndroidSettings = new AndroidSettings({useEmulator: false});

| PassiveFaceLivenessCustomizationAndroid constructor | | --------- | | String styleResIdNameNome do style resource que define as cores do SDK. Por exemplo, caso deseje mudar as cores do SDK, crie um style em ROOT_PROJECT/android/app/src/main/res/values/styles.xml com o nome R.style.my_custom_style seguindo o template e parametrize "my_custom_style" | | String layoutResIdNameNome do layout resource que substituirá o layout padrão do SDK. Por exemplo, caso deseje mudar o layout do SDK, crie um layout em ROOT_PROJECT/android/app/src/main/res/layout/my_custom_layout.xml seguindo o template e parametrize "my_custom_layout" | | String greenMaskResIdNameNome do drawable resource à substituir a máscara verde padrão. Caso for usar este parâmetro, use uma máscara com a mesma área de corte, é importante para o algoritmo de detecção. Por exemplo, salve a imagem da máscara em ROOT_PROJECT/android/app/src/main/res/drawable/my_custom_green_mask.png e parametrize "my_custom_green_mask" | | String redMaskResIdNameNome do drawable resource à substituir a máscara vermelha padrão. Caso for usar este parâmetro, use uma máscara com a mesma área de corte, é importante para o algoritmo de detecção. Por exemplo, salve a imagem da máscara em ROOT_PROJECT/android/app/src/main/res/drawable/my_custom_red_mask.png e parametrize "my_custom_red_mask" | | String whiteMaskResIdNameNome do drawable resource à substituir a máscara branca padrão. Caso for usar este parâmetro, use uma máscara com a mesma área de corte, é importante para o algoritmo de detecção. Por exemplo, salve a imagem da máscara em ROOT_PROJECT/android/app/src/main/res/drawable/my_custom_white_mask.png e parametrize "my_custom_white_mask" | | MaskType maskTypeDefine o tipo de máscara utilizada nas capturas. Existem dois tipos: MaskType.DEFAULT, com o padrão pontilhado e MaskType.NONE, que remove completamente a máscara. O padrão é MaskType.DEFAULT |

| CaptureSettings constructor | | --------- | | int beforePictureMillisDuração em milissegundos entre a primeira detecção do rosto e a efetiva captura da foto | | int afterPictureMillisDuração em milissegundos entre a captura da foto e o envio para o servidor para o mantimento do rosto e dos sensores válidos |

| SensorSettingsAndroid constructor | | --------- | | SensorStabilitySettingsAndroid sensorStabilitySettingsConfigurações do sensor de orientação à ser aplicado em todos os passos do SDK |

| SensorStabilitySettingsAndroid constructor | | --------- | | String messageResourceIdNameNome do string resource à ser mostrado quando o celular não estiver estável. A mensagem padrão é "Mantenha o celular parado". Por exemplo, caso deseje mostrar a String "Teste", crie uma String em ROOT_PROJECT/android/app/src/main/res/values/strings.xml com o nome R.string.my_custom_stability_string e valor "Teste" e parametrize "my_custom_stability_string" | | int stabilityStabledMillisQuantos milissegundos o celular deve se manter no limiar correto para ser considerado estável. O padrão é 2000 ms | | double stabilityThresholdLimiar inferior entre estável/instável, em variação de m/s² entre as últimas duas coletas do sensor. O padrão é 0.5 m/s² |

iOS

| IosSettings constructor | | --------- | | PassiveFaceLivenessCustomizationIos customizationCustomização visual do SDK | | int beforePictureMillisDuração em milissegundos entre a primeira detecção do rosto e a efetiva captura da foto | | SensorStabilitySettingsIos sensorStabilityConfigurações do sensor de estabilidade à ser aplicado no SDK |

| PassiveFaceLivenessCustomizationIos constructor | | --------- | | String colorHexCor tema do SDK. Por exemplo, caso deseje usar a cor preta, utilize "#000000" | | String greenMaskImageNameNome da imagem à substituir a máscara verde padrão. Lembre de adicionar a imagem em Assets Catalog Document no seu projeto do XCode | | String whiteMaskImageNameNome da imagem à substituir a máscara branca padrão. Lembre de adicionar a imagem em Assets Catalog Document no seu projeto do XCode | | String redMaskImageNameNome da imagem à substituir a máscara vermelha padrão. Lembre de adicionar a imagem em Assets Catalog Document no seu projeto do XCode | | String closeImageNameNome da imagem à substituir o botão de fechar o SDK. Lembre de adicionar a imagem em Assets Catalog Document no seu projeto do XCode | | bool showStepLabelFlag que indica se deseja mostrar o label do passo atual | | bool showStatusLabelFlag que indica se deseja mostrar o label do status atual |

| SensorStabilitySettingsAndroid constructor | | --------- | | String messageString à ser mostrada quando o celular não estiver estável | | double stabilityThresholdLimiar inferior entre estável/instável, em variação de m/s² entre as últimas duas coletas do sensor. O padrão é 0.3 m/s² |

Coletando o resultado

O objeto de retorno do DocumentDetector terá o atributo result que contém uma string SUCCESS, FAILURE ou CLOSED. O retorno terá o padrão PassiveFaceLivenessSuccess, PassiveFaceLivenessFailure e PassiveFaceLivenessClosed, respectivamente, para cada um dos casos.

PassiveFaceLivenessSuccess

| Campo | | --------- | | String imagePathEndereço completo da imagem no dispositivo | | String imageUrlURL da imagem armazenada temporariamente nos servidores da CAF | | String signedResponseResposta assinada do servidor da CAF que confirmou que a selfie capturada possui um rosto verdadeiro (não é foto de foto ou vídeo). Utilize esse parâmetro caso queira uma camada extra de segurança verificando se a assinatura da resposta não está quebrada, provocada por uma interceptação da requisição. Se estiver quebrada, há um grande indício de interceptação da requisição | | String trackingIdIdentificador dessa execução em nossos servidores. Se possível, salve este campo e mande-o junto para nossa API. Assim, teremos mais dados de como o usuário se comportou durante a execução | Será nulo se o usuário configurar useAnalytics = false ou as chamadas de analytics não funcionarem |

PassiveFaceLivenessFailure

| Campo | | --------- | | String messageMensagem amigável explicando o motivo da falha do SDK | | String typeTipo de falha que encerrou o SDK |

Os tipos de falha existentes são:

  • InvalidTokenReason: quando o token informado é inválido. Não deve ocorrer em um ambiente de produção;
  • PermissionReason: quando alguma permissão obrigatória não foi concedida pelo usuário. Só ocorrerá em um ambiente de produção se o seu app não solicitar ao seu usuário ou o mesmo desabilitar manualmente antes de iniciar;
  • NetworkReason: falha de conexão com o servidor. Ocorrerá em produção se o dispositivo do usuário estiver sem internet;
  • ServerReason: falha em alguma requisição com nossos servidores. Ocorrerá em produção somente no caso de uma falha nossa;
  • SecurityReason: quando o dispositivo não é seguro para executar o SDK. Se esta falha ocorrer, avise-nos;
  • StorageReason: quando o dispositivo não possui espaço suficiente para a captura de alguma foto. Pode ocorrer em produção;
  • LibraryReason: quando alguma falha interna impossibilitou a execução do SDK. Pode ocorrer devico à erros de configuração do projeto, não deve ocorrer em produção;

PassiveFaceLivenessClosed

Objeto vazio indicando fechamento da tela de captura pelo usuário.