Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/smallcase/react-native-simple-biometrics

simple interface to verify user authenticity
https://github.com/smallcase/react-native-simple-biometrics

android authentication biometrics faceid fingerprint ios react-native

Last synced: 4 days ago
JSON representation

simple interface to verify user authenticity

Awesome Lists containing this project

README

        

# React Native Simple Biometrics

![npm](https://img.shields.io/npm/v/react-native-simple-biometrics?color=%231F7AE0)

## 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](./demo.gif?raw=true "demo")

## Installation

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

```bash
$ yarn add react-native-simple-biometrics
```

## Minimum Requirements

- iOS target: `8.0`
- Android minSdkVersion: `21`

## 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:

```xml
NSFaceIDUsageDescription
a valid reason to use biometrics
```

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](https://www.npmjs.com/package/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:

```javascript
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](https://www.npmjs.com/package/react-native-biometrics). If you require advanced features such as key generation, signatures, and more, consider using react-native-biometrics.