1.0.0 • Published 5 years ago

@altergo/react-native-biometrics v1.0.0

Weekly downloads
-
License
MIT
Repository
gitlab
Last release
5 years ago

React Native Biometrics

React Native Version

React Native Biometrics is a React Native library for authenticating users with biometrics. Inspired by react-native-fingerprint-scanner.

iOS

The usage of the TouchID is based on a framework, named Local Authentication

It provides a Default View that prompts the user to place a finger to the iPhone’s button for scanning

Android

Using an expandable Android Fingerprint API library, which combines Samsung and Meizu's official Fingerprint API

Samsung and Meizu's Fingerprint SDK supports most devices which system versions less than Android 6.0

Table of Contents

Installation

$ yarn add react-native-biometrics

Automatic Configuration

$ npx react-native link react-native-biometrics

Manual Configuration

iOS 1. In XCode, in the project navigator, right click LibrariesAdd Files to [your project's name] 2. Go to node_modulesreact-native-biometrics and add ReactNativeBiometrics.xcodeproj 3. In XCode, in the project navigator, select your project. Add libReactNativeBiometrics.a to your project's Build PhasesLink Binary With Libraries 4. Run your project

Android

  • Open up android/app/src/main/java/.../MainActivity.java
  • Add to the imports at the top of the file
import com.smrnvmkhl.biometrics.ReactNativeBiometricsPackage;
  • Add new ReactNativeBiometricsPackage() to the list returned by the getPackages() method
@Override
protected List<ReactPackage> getPackages() {
  return Arrays.<ReactPackage>asList(
      new MainReactPackage(),
      ...
      new ReactNativeBiometricsPackage()
  );
}
  • Append the following lines to android/settings.gradle:
include ':react-native-biometrics'
project(':react-native-biometrics').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-biometrics/android')
  • Insert the following lines inside the dependencies block in android/app/build.gradle
compile project(':react-native-biometrics')
  • Add rules to proguard rules file (default: android/app/proguard-rules.pro)

Permissions

Add the following permissions to their respective files:

AndroidManifest.xml

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

Info.plist

<key>NSFaceIDUsageDescription</key>
<string>$(PRODUCT_NAME) requires FaceID access to allows you quick and secure access</string>

API

NameDescriptionOS
authenticateStarts biometrics authenticationBoth
getStatusGet biometrics status codeBoth
releaseStops biometrics listenerAndroid

authenticate

authenticate({
  onNotMatch: Function(code), // Callback calls when firngerprint not matched
  description: String, // Purpose of request for user authentication
  fallback: String, // Text of fallback button
  reuse: Number, // Number of seconds after unlock by biometrics
}): Promise<String>

getStatus

getStatus(): Promise<String>

release

release(): void

Codes

CodeDescriptionOS
fingerprintTouchID on iOS and Fingerprint on AndroidBoth
faceFaceID on iOSiOS
successSuccess authenticateBoth
failedThe user failed to provide valid credentialsBoth
notSupportedDevice does not support biometricsBoth
notAvailableBiometrics is not available on the deviceBoth
notEnrolledThe user has no enrolled biometric identitiesBoth
notMatchNo matchAndroid
deviceLockedAuthentication was not successful, the device currently in a lockoutAndroid
userCancelThe user tapped the cancel button in the authentication dialogiOS
fallbackThe user tapped the fallback button in the authentication dialog, but no fallback is available for the authentication policyiOS
systemCancelThe system canceled authenticationiOS
passcodeNotSetA passcode isn’t set on the deviceiOS
unknownCould not authenticate for an unknown reasoniOS