react-native-dojah
Install
npm install react-native-dojah-lib --save
or with yarn
yarn add react-native-dojah-lib
Required Packages
Other required installations (make sure to follow the instructions in the react-native-webview documentation)
react-native-webview/react-native-webview#140 (comment)
Seenpm install react-native-webview react-native-permissions react-native-geolocation-service @react-native-async-storage/async-storage --save
On Android
// If you would like to use the selfie, or id screens, add:
// Add the camera permission:
<uses-permission android:name="android.permission.CAMERA" />
// Add the modify audio settings permission:
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
// If you would like to use the address screen, add:
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
On iOS
// If you would like to use the selfie, or id screens, add:
permissions_path = '../node_modules/react-native-permissions/ios'
pod 'Permission-Camera', :path => "#{permissions_path}/Camera"
// If you would like to use the address screen, add:
pod 'Permission-LocationAccuracy', :path => "#{permissions_path}/LocationAccuracy"
pod 'Permission-LocationAlways', :path => "#{permissions_path}/LocationAlways"
pod 'react-native-geolocation-service', path: '../node_modules/react-native-geolocation-service'
Usage
/* eslint-disable */
import * as React from 'react';
import { SafeAreaView, StyleSheet } from 'react-native';
import { Dojah } from 'react-native-dojah';
export default function App() {
/**
* This is your app ID
* (go to your dashboard at
* https://dojah.io/dashboard
* to create an app and retrieve it)
*/
const appId = '6000604fb87ea60035ef41bb';
/**
* This is your account public key
* (go to your dashboard at
* https://dojah.io/dashboard to
* retrieve it. You can also regenerate one)
*/
const publicKey = 'test_pk_TO6a57RT0v5QyhZmhbuLG8nZI';
/**
* This is the widget type you'd like to load
* (go to your dashboard at
* https://dojah.io/dashboard to enable different
* widget types)
*/
const type = 'liveness';
/**
* These are the configuration options
* available to you are:
* {debug: BOOL, pages: ARRAY[{page: STRING, config: OBJECT}]}
*
* The config object is as defined below
*
* NOTE: The otp and selfie options are only
* available to the `verification` widget
*/
const config = {
debug: true,
pages: [
{ page: 'address', config: { verification: true } },
{
page: 'government-data',
config: {
bvn: true,
nin: false,
dl: false,
mobile: false,
otp: false,
selfie: false,
},
},
],
};
/**
* These are the user's data to verify, options
* available to you possible options are:
* {first_name: STRING, last_name: STRING, dob: DATE STRING}
*
* NOTE: Passing all the values will automatically skip
* the user-data page (thus the commented out `last_name`)
*/
const userData = {
first_name: 'Chisom',
last_name: 'Ekwuribe',
dob: '2022-05-01',
};
/**
* These are the metadata options
* You can pass any values within the object
*/
const metadata = {
user_id: '121',
};
/**
* @param {String} responseType
* This method receives the type
* The type can only be one of:
* loading, begin, success, error, close
* @param {String} data
* This is the data from doja
*/
const response = (responseType: string, data: any) => {
console.log('Response:', responseType, JSON.stringify(data));
if (responseType === 'success') {
} else if (responseType === 'error') {
} else if (responseType === 'close') {
} else if (responseType === 'begin') {
} else if (responseType === 'loading') {
}
};
React.useEffect(() => {
Dojah.hydrate(appId, publicKey);
}, [appId, publicKey]);
return (
<SafeAreaView style={styles.container}>
<Dojah
appId={appId}
publicKey={publicKey}
type={type}
config={config}
userData={userData}
metadata={metadata}
response={response}
/>
</SafeAreaView>
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
},
});
export default App
See the example
folder for an implementation
Deployment
REMEMBER TO CHANGE THE APP ID and PUBLIC KEY WHEN DEPLOYING TO A LIVE (PRODUCTION) ENVIRONMENT
Contributing
- Fork it!
- Create your feature branch:
git checkout -b feature/feature-name
- Commit your changes:
git commit -am 'Some commit message'
- Push to the branch:
git push origin feature/feature-name
- Submit a pull request 😉😉
License
This project is licensed under the MIT License - see the LICENSE file for details