react-native-bureauid-fraud-sdk
v1.0.5
Published
sample native module
Maintainers
Readme
react-native-bureauid-fraud-sdk
A React Native plugin for Bureau's One-Tap Login product. This SDK enables seamless authentication using mobile network operator verification.
Installation
npm install react-native-bureauid-fraud-sdkiOS Setup
After installing, navigate to the iOS directory and install pods:
cd ios && pod install && cd ..API Reference
authenticate()
Authenticates a user using Bureau's One-Tap Login.
Parameters:
clientId(string): Bureau client IDsessionId(string): Unique session/correlation ID (UUID)msisdn(string): Mobile number with country codeenv(string): Environment -'Production'or'Sandbox'(default:'Production')timeOutInMs(number): Timeout in milliseconds (default:15000)
Returns: Promise<AuthenticationResult>
AuthenticationResult Interface:
interface AuthenticationResult {
readonly status: AuthenticationStatus; // Enum case name from SDK
readonly message: string; // Associated value from enum
}AuthenticationStatus Enum:
type AuthenticationStatus =
| 'networkAndOperatorMismatch'
| 'authFailure'
| 'networkNotSupported'
| 'operatorNotSupported'
| 'operatorAndNetworkNotSupported'
| 'awaitingProviderAck'
| 'authValidationError'
| 'duplicateCorrelationId'
| 'integrationFailure'
| 'authStateExpired'
| 'unauthorized'
| 'countryNotSupported'
| 'rateLimitExceeded'
| 'internalServerError'
| 'networkUnavailable'
| 'wifiDetectedAndNoDataNetwork'
| 'completed'
| 'unknown';Usage Examples
One-Tap Login (Production)
import { authenticate } from 'react-native-bureauid-fraud-sdk';
import { v4 as uuidv4 } from 'uuid';
// Generate unique session ID
const sessionId = uuidv4();
// Authenticate user
authenticate(
'your-client-id',
sessionId,
'919876543210', // Phone number with country code
'Production',
60000 // Timeout in milliseconds (60 seconds)
)
.then((result) => {
console.log('Status:', result.status); // e.g., "completed", "authFailure"
console.log('Message:', result.message); // Associated value from enum
})
.catch((error) => {
console.error('Authentication failed:', error);
});One-Tap Login (Sandbox)
import { authenticate } from 'react-native-bureauid-fraud-sdk';
import { v4 as uuidv4 } from 'uuid';
const sessionId = uuidv4();
authenticate('your-client-id', sessionId, '919876543210', 'Sandbox', 60000)
.then((result) => {
if (result.status === 'completed') {
// Authentication completed successfully
console.log('Authentication successful:', result.message);
} else {
// Authentication failed
console.log('Authentication failed:', result.status, result.message);
}
})
.catch((error) => {
console.error('Error:', error);
});Response Handling
Authentication Result
The authenticate() function returns an AuthenticationResult object:
{
status: "completed", // Enum case name from SDK
message: "Completed" // Associated value from enum
}Success Case:
status: "completed"- Authentication completed successfullymessage: "Completed"- Success message from SDK
Error Cases:
status: "authFailure"- Authentication failedstatus: "networkUnavailable"- Network unavailablestatus: "operatorNotSupported"- Operator not supportedmessage: <error_message>- Error message from SDK
All possible status values are defined in the AuthenticationStatus enum type.
Notes
- Session ID: Always generate a unique session ID (UUID) for each authentication request
- Phone Number: Include country code (e.g.,
919876543210for India) - Timeout: Timeout is specified in milliseconds (e.g.,
60000for 60 seconds) - Environment: Use
'Sandbox'for testing and'Production'for live environment - Error Handling: Always handle both success and error cases in your promise chains
Example App
See the example/ directory for a complete working example app demonstrating One-Tap Login features.
