Skip to content

Francesco-Voto/react-native-biometrics-scanner

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

React Native Library to handle the biometric autentication. The library is developed with Turbomodules, for this reason to make it work is necessary use RN 0.68 or higher

Installation

npm install react-native-biometrics-scanner

or

yarn add react-native-biometrics-scanner

iOS

In your Info.plist:

<key>NSFaceIDUsageDescription</key>
<string>{Add here a message}</string>

Android

In order to make it work you need to add the necessary Permissions in your AndroidManifest.xml:

API level 28+

<uses-permission android:name="android.permission.USE_BIOMETRIC" />

API level 23-28

<uses-permission android:name="android.permission.USE_FINGERPRINT" />

Usage

• getAvailableBiometric

import { getAvailableBiometric } from 'react-native-biometrics-scanner';

// ...

const result = await getAvailableBiometric();

This method return the type of biometric present on the device:

  • iOS: TouchID or FaceID
  • Android: TouchID or FaceID or IrisID or if it is not possible to retrieve any infoBiometricID

and throws:

  • UnknownBiometricError when the status of biometric is unknown
  • UnsupportedBiometricError when the biometric is not supported by the device
  • NoEnrollError when user needs to enroll in order to use biometric

• authenticate

import { authenticate } from 'react-native-biometrics-scanner';

// ...

await authenticate(prompt);

It requires an object to configure the prompt message:

  • promptMessage: the message to show
  • allowDeviceCredentials: if true the system fallback is used to authenticate after all the attempts of biometric fail, otherwise BiometricFallbackError is thrown
  • cancelButtonText: the text for cancel button (Android only)(optional)
  • descriptionText: the text for description (Android only)(optional)
  • subtitleText: the text for subtitle (Android only)(optional)
  • fallbackPromptMessage: the title of fallback option (iOS only)(optional)

This method resolve a promise if the authentication is succesful and throws:

  • BiometricUnknownError when the status of biometric is unknown
  • BiometricUnsupportedError when the biometric is not supported by the device
  • BiometricNoEnrollError when user needs to enroll in order to use biometric
  • BiometricAuthenticationError when the authentication fails
  • BiometricUserCancelError when user cancels the authentication
  • BiometricPasscodeNotSetError when a passcode is not set
  • BiometricLockOutError when the device is locked
  • BiometricFallbackError when the biometric authentication fails and a fallback has to be provided
  • BiometricPasscodeNotSetError when passcode is not set
  • BiometricSystemCancelError (iOS only) when the system cancels the authentication

Contributing

See the contributing guide to learn how to contribute to the repository and the development workflow.

License

MIT