Device Intelligence and OTL Combined flutter SDK.
A Flutter plugin for Bureau's Device Intelligence and OTL product.
Device Intelligence - It helps you understand your user’s unique hardware with their device data. It efficiently syncs the data in the background and processes them. The processed data can be used to generate a fingerprint id.
OTL - The fundamental idea behind this product also known as silent authentication is to enable a smooth, SMS based One-time Password (OTP) less user journey that can help businesses verify the mobile phone number of their customers and provide a frictionless entry for their customers.
Integration Overview
- Integrate Android SDK in your application
- Call the API to query device information
- SessionKey and UserID is generated from client backend and sent to the SDK.
- Invoke the submit function in SDK to pass the data to Bureau backend.
- Upon successful transmission of the parameters, a callback is received in the SDK, based on the callback (Success/Failure) next steps can be taken.
- If the callback is successful, Invoke Bureau's backend API /v1/suppliers/device-fingerprint to fetch the results of device and v2/auth/userinfo for OTL.
- Use the OTL, fingerprint and risk signals to allow, block or redirect the user to a desired flow.
Usage
Install onetaplogin ^ 1.1.0 as a [dependency in your pubspec.yaml file]
Initialise the SDK
On Production
// Import package
import 'package:onetaplogin/onetaplogin.dart';
// Authenticate : msisdn should be starting with 91
// To use OneTapLogin as a standalone product
var status = await Onetaplogin.authenticate(
clientID,
txnID,
msisdn);
// To use Device Intelligence as a standalone product
var status = await Onetaplogin.submitDeviceIntelligence( //Here the status returned is a string and contains the finger print sdk's success or failure message
clientID,
sessionId,
userId);
// To use both OneTapLogin and Device Intelligence
var status = await Onetaplogin.authenticateWithDeviceIntelligence(
clientID,
txnID,
msisdn);
On Sandbox
// Import package
import 'package:onetaplogin/onetaplogin.dart';
// Authenticate : msisdn should be starting with 91
// To use OneTapLogin as a standalone product
var status = await Onetaplogin.authenticate(
clientID,
txnID,
msisdn, env : "Sandbox");
// To use Device Intelligence as a standalone product
var status = await Onetaplogin.submitDeviceIntelligence( //Here the status returned is a string and contains the finger print sdk's success or failure message
clientID,
sessionId,
userId, env : "Sandbox");
// To use both OneTapLogin and Device Intelligence
var status = await Onetaplogin.authenticateWithDeviceIntelligence(
clientID,
txnID,
msisdn, env : "Sandbox");
The status object for submitDeviceIntelligence and authenticateWithDeviceIntelligence method would be a Bureau's own custom class that has the following properties.
- isSuccess boolean to check the success of deviceintelligence.
- errorMessage and errorCode to pinpoint errors in the case isSuccess is false and empty for true cases.
- authStatus that returns the authentication status if merchant uses the onetap login feature.
Android Manifest changes
//Add the folowing call if targeting S+ devices
<activity>
android:exported="true"
</activity>
........
<application
android:usesCleartextTraffic="true"
</application>
or if you are using network config
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="false">PLEASE CONTACT BUREAU TO GET DOMAIN</domain>
</domain-config>
</network-security-config>
Backend Integration Overview
OTL - https://docs.bureau.id/reference/one-tap-login
Device Intelligence - https://docs.bureau.id/reference/device-intelligence
Updated 4 months ago