smallcase / react-native-simple-biometrics

simple interface to verify user authenticity
https://www.npmjs.com/package/react-native-simple-biometrics
MIT License
183 stars 16 forks source link
android authentication biometrics faceid fingerprint ios react-native

React Native Simple Biometrics

npm

Overview

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.

demo

Installation

To get started with React Native Simple Biometrics, you can add it to your project using Yarn:

$ yarn add react-native-simple-biometrics

Minimum Requirements

iOS Permission

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.

Usage

React Native Simple Biometrics offers two main methods:

  1. canAuthenticate(): Checks whether the device supports biometric authentication. Returns true if the hardware is available or if permission for Face ID (iOS) was granted.

  2. 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
    // ...
  }
}

Credits

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.