Truora SDK for Flutter

pub package

A Flutter plugin that provides functionality to integrate Truora's Digital Identity (DI) into your Flutter applications. This package includes classes and protocols to initiate identity processes and handle their results.

Setup

Create Flutter project and add the Trurora SDK dependency to it.

flutter create MyApp

Add the dependency:

cd MyApp
flutter pub add truora_sdk

iOS

Adapt Info.plist by adding the related permissions based on the verifications your flow will use:

  • For verifications that require the camera add NSCameraUsageDesscription.
  • For geolocation verification add NSLocationWhenInUseUsageDescription.
  • To allow uploading gallery files in document verification add NSPhotoLibraryUsageDescription.

Also, add the following to your Podfile file:

post_install do |installer|
  installer.pods_project.targets.each do |target|
    flutter_additional_ios_build_settings(target)

    target.build_configurations.each do |config|
      config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= [
        '$(inherited)',

        ## dart: PermissionGroup.camera
        'PERMISSION_CAMERA=1',

        ## dart: PermissionGroup.photos
        'PERMISSION_PHOTOS=1',

        ## dart: [PermissionGroup.location, PermissionGroup.locationAlways, PermissionGroup.locationWhenInUse]
        'PERMISSION_LOCATION=1',
      ]
    end
  end
end

Note: Only add the permissions used.

Then run the following command to update pods:

cd ios && pod install

Android

Adapt AndroidManifest.xml by adding the related permissions based on the verifications your flow will use:

  • For verifications that require the camera, add:
<uses-feature android:name="android.hardware.camera" android:required="true" />

<uses-permission android:name="android.permission.CAMERA" />
  • For geolocation verification, add:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
  • To allow uploading gallery files in document verification, add:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

How to use

In your build() method, the TruoraSDK widget is configured with several properties:

  • token: This is the API token used to authorize and start the identity verification process.

  • requiredPermissions: A list of permissions that the SDK requires. The possible permissions are:

    • TruoraPermission.camera: To access the camera for the identity verification.
    • TruoraPermission.location: To access Location for the geolocation verification.
    • TruoraPermission.photos: To access the gallery to upload photos in document verification.
  • Callback Functions: The TruoraSDK allows you to handle events like errors, process steps completion, process success, and failure.

    • onError: If an error occurs during the process, this callback is triggered.
    • onStepsCompleted: Once the identity verification steps are completed, this callback is invoked.
    • onProcessSucceeded: If the identity verification succeeds, this callback is triggered.
    • onProcessFailed: If the identity verification fails, this callback is called.

For example:

@override
Widget build(BuildContext context) {
  return Scaffold(
    body: TruoraSDK(
        token: 'replace_me',

        // Add needed permisisions for process
        requiredPermissions: const [
          TruoraPermission.camera,
          TruoraPermission.location
        ],

        onError: (errorMessage) {
          _showErrorDialog(context, errorMessage);
        },

        onStepsCompleted: (processID) {
          _navigateToResultsPage('completed', processID, context);
        },

        onProcessSucceeded: (processID) {
          _navigateToResultsPage('success', processID, context);
        },

        onProcessFailed: (processID) {
          _navigateToResultsPage('failure', processID, context);
        }),
  );
}

Notes

Know more about Truora and request a demo here.

Libraries

truora_sdk