React Native Simple Biometrics is a straightforward and minimalistic React Native package designed to provide developers with an API for implementing user authentication using on-device biometrics. This library facilitates the quick verification of the app's user, ensuring that sensitive information is only accessible to authorized individuals, such as the phone owner or a trustee.
To get started with React Native Simple Biometrics, you can add it to your project using Yarn:
$ yarn add react-native-simple-biometrics
- iOS target:
8.0
- Android minSdkVersion:
21
To utilize the Face ID system on iOS devices, it is mandatory to include an entry in your iOS app's info.plist
, explaining the valid reason for using biometrics:
<key>NSFaceIDUsageDescription</key>
<string>a valid reason to use biometrics</string>
When you call the authenticate
function, iOS users will be automatically prompted for permission. For more granular control over when to request permissions, you can utilize the react-native-permissions package.
React Native Simple Biometrics offers two main methods:
-
canAuthenticate()
: Checks whether the device supports biometric authentication. Returnstrue
if the hardware is available or if permission for Face ID (iOS) was granted. -
requestBioAuth(promptTitle: string, promptMessage: string)
: Initiates the biometric authentication process, displaying a user-friendly prompt with the specified title and message. This function can be used for user authentication.
Here's a code snippet demonstrating how to use these methods:
import RNBiometrics from "react-native-simple-biometrics";
// Check if biometric authentication is available
const can = await RNBiometrics.canAuthenticate();
if (can) {
try {
await RNBiometrics.requestBioAuth("prompt-title", "prompt-message");
// Code to execute when authenticated
// ...
} catch (error) {
// Code to handle authentication failure
// ...
}
}
React Native Simple Biometrics is a simplified version of react-native-biometrics. If you require advanced features such as key generation, signatures, and more, consider using react-native-biometrics.