FaceLiveness

It brings cutting-edge live facial verification and fingerprint authentication technology into your Flutter applications, offering a seamless and secure way to authenticate users.

Check out the SDK documentation in pub.dev to get more examples and extra information:

Requirements

Sending your app to Play Store

To publish your app on the Google Play Store, you must complete a data safety form. Since we integrate with the FingerPrintJS SDK, you'll need to provide the following information:

Runtime permissions

Android

iOS

Platform Configurations

Android

If your version of Gradle is earlier than 7, add these lines to your build.gradle.

allprojects {
  repositories {
    ...
    maven { url 'https://repo.combateafraude.com/android/release' }
    maven { url 'https://raw.githubusercontent.com/iProov/android/master/maven/' }
    maven { url 'https://maven.fpregistry.io/releases' }
    maven { url 'https://jitpack.io' }
  }
}

If your version of Gradle is 7 or newer, add these lines to your settings.gradle.

dependencyResolutionManagement {
  repositories {
    ...
    maven { url 'https://repo.combateafraude.com/android/release' }
    maven { url 'https://raw.githubusercontent.com/iProov/android/master/maven/' }
    maven { url 'https://maven.fpregistry.io/releases' }
    maven { url 'https://jitpack.io' }
  }
}

Add support for Java 8 to your build.gradle file. Skip this if Java 8 is enabled.

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

iOS

In the info.plist file, add the permissions below:

<key>NSCameraUsageDescription</key>
<string>To capture the selfie</string>

Usage

FaceLiveness faceLiveness =
        FaceLiveness(mobileToken: mobileToken, peopleId: personId);

// Your SDK customization parameters

final stream = faceLiveness.start();

    stream.listen((event) {

      if (event is FaceLivenessEventConnecting) {
        // The SDK is connecting to the server. You should provide an indeterminate progress indicator
        // to let the user know that the connection is taking place.
      } else if (event is FaceLivenessEventConnected) {
        // The SDK has connected, and the iProov user interface will now be displayed. You should hide
        // any progress indication at this point.
      } else if (event is FaceLivenessEventClosed) {
        // The user canceled face verification, either by pressing the close button at the top of the screen, or sending
        // the app to the background.
      } else if (event is FaceLivenessEventSuccess) {
        // The user was successfully verified/enrolled and the token has been validated.
        // You can access the following properties:
        final signedResponse = event.signedResponse;
      } else if (event is FaceLivenessEventFailure) {
        // The user was not successfully verified/enrolled, as their identity could not be verified,
        // or there was another issue with their verification/enrollment (e.g. lost internet connection).
        // You can access the following properties:
        final errorType = event.errorType
        final errorDescription = event.errorDescription
      }
    });

FaceLiveness Options

ReverseProxySettings

The reverse proxy settings that will be used to run the FaceLiveness and Authentication services. These two services can operate independently of each other, FaceLiveness and Authentication.

FaceLiveness reverse proxy:

Authentication reverse proxy:

Enums

CafStage

CameraFilter

Time

FaceLiveness Event Streaming

FaceLivenessEventConnecting

The SDK is loading, you can use this event return to set an action in your app, for example, a loading indicator.

FaceLivenessEventConnected

The SDK is not loading anymore, you can use this event return to set a action in your app, for example, you can stop your loading indicator.

FaceLivenessEventClosed

The execution has been cancelled by the user.

FaceLivenessEventSuccess

The isAlive parameter is very important, based on this validation, the user can be guided to continue the flow or not. In case of isAlive: true, it would be able to continue with the journey. If isAlive: false, this user is not valid and should be prevented from continuing their journey.

FaceLivenessEventFailure

Last updated

Logo

2023 © Caf. - All rights reserved