new_face_liveness 3.0.0 new_face_liveness: ^3.0.0 copied to clipboard
Flutter plugin cross-platform (iOS, Android) for Combate à Fraude's PassiveFaceLiveness (https://github.com/combateafraude).
NewFaceLiveness - Flutter Plugin #
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.
Pré requisitos #
Configuração mínima | Versão |
---|---|
Flutter | 1.12+ |
Dart | 2.12+ |
Android API | 21+ |
iOS | 13.0+ |
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
}
rootProject.allprojects {
repositories {
maven { url "https://repo.combateafraude.com/android/release" }
maven { url 'https://raw.githubusercontent.com/iProov/android/master/maven/' }
}
}
}
iOS #
No arquivo ROOT_PROJECT/ios/Podfile
, adicione no final do arquivo:
source 'https://github.com/combateafraude/iOS.git'
source 'https://cdn.cocoapods.org/'
Por último, adicione a permissão de câmera no arquivo ROOT_PROJECT/ios/Runner/Info.plist
:
<key>NSCameraUsageDescription</key>
<string>To capture the selfie</string>
Utilização #
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 errorMessage = event.errorMessage
final code = event.code
final signedResponse = event.signedResponse
}
});
PassiveFaceLiveness methods #
Parameter | Required |
---|---|
Used to redirect the SDK to the desired environment in caf api. |
No |
Used to change the SDK camera filter. It has the following options: CameraFilter.natural or CameraFilter.lineDrawing |
No, the default is CameraFilter.lineDrawing |
Used to enable screenshots during the SDK scan. |
No, the default is false |
Used to determines whether the SDK's loading screen will be implemented through client side or if will be used the default screen. If set to 'true,' the loading screen will be a standard SDK screen. If 'false,' You should provide an indeterminate progress indicator. |
No, the default is false |
Enums #
CafStage
Description | Values |
---|---|
Used to set the SDK stage on .setStage(String stage) method. |
CafStage.prod , CafStage.beta |
CameraFilter
Description | Values |
---|---|
Used to set the SDK's camera filter | CameraFilter.natural , CameraFilter.lineDrawing |
PassiveFaceLivenessSuccess #
Field |
---|
Signed response from the CAF server confirming that the captured selfie has a real face. This parameter is used to get an extra layer of security, checking that the signature of the response is not broken, or caused by request interception. If it is broken, there is a strong indication of request interception. |
PassiveFaceLivenessFailure #
iOS
The PassiveFaceLivenessFailure
object return the following parameters.
Field |
---|
Signed response from the CAF server confirming that the captured selfie has a real face. |
Error type returned by the SDK. Check the table below. |
Error message returned by the SDK. |
Error code returned by the SDK. Check the table below. |
In case of failure, the PassiveFaceLivenessFailure
object will also return a signedResponse containing information.
Within the signedResponse, the parameter isAlive defines the execution of liveness, where true is approved and false is rejected.
Code | Error Type | Description |
---|---|---|
1 | unknown |
Try aganin |
2 | getToken |
Error while trying to capture the execution token. |
3 | livenessError |
Error while attempting to execute liveness due to communication issues. |
4 | registerError |
Error while performing the registration of the liveness execution. |
5 | captureAlreadyActive |
An existing capture is already in progress. Wait until the current capture completes before starting a new one. |
6 | cameraPermissionDenied |
The user disallowed access to the camera when prompted. You should direct the user to re-try. |
7 | networkError |
An error occurred with the video streaming process. The associated string (if available) will contain further information about the error. |
8 | serverError |
A server-side error/token invalidation occurred. The associated string (if available) will contain further information about the error. |
9 | unexpectedError |
An unexpected and unrecoverable error has occurred. The associated string will contain further information about the error. These errors should be reported to iProov for further investigation. |
Android
The PassiveFaceLivenessFailure
object return the following parameters.
Field |
---|
Error type returned by the SDK. |
Error message returned by the SDK. |
Error code returned by the SDK. |