React Native authentication with the native Touch ID popup.

Overview

React Native Touch ID

react-native version npm version npm downloads Code Climate

React Native Touch ID is a React Native library for authenticating users with biometric authentication methods like Face ID and Touch ID on both iOS and Android (experimental).

⚠️ Note: This library is not currently actively maintained. If you're looking for something more stable that "just works", the awesome folks over at Expo have begun open-sourcing some of their modules for compatability with React Native projects not built with Expo. As such you can attempt to use their equivalent library called LocalAuthentication at expo-local-authentication if you run into any issues here!

react-native-touch-id

Breaking changes

Please review all changes in the Changelog

Documentation

Install

npm i --save react-native-touch-id

or

yarn add react-native-touch-id

Support

Due to the rapid changes being made in the React Native ecosystem, we are not officially going to support this module on anything but the latest version of React Native. The current supported version is indicated on the React Native badge at the top of this README. If it's out of date, we encourage you to submit a pull request!

Usage

Linking the Library

In order to use Biometric Authentication, you must first link the library to your project.

Using react-native link

Use the built-in command:

react-native link react-native-touch-id

Using Cocoapods (iOS only)

On iOS you can also link package by updating your podfile

pod 'TouchID', :path => "#{node_modules_path}/react-native-touch-id"

and then run

pod install

Using native linking

There's excellent documentation on how to do this in the React Native Docs.

Platform Differences

iOS and Android differ slightly in their TouchID authentication.

On Android you can customize the title and color of the pop-up by passing in the optional config object with a color and title key to the authenticate method. Even if you pass in the config object, iOS does not allow you change the color nor the title of the pop-up. iOS does support passcodeFallback as an option, which when set to true will allow users to use their device pin - useful for people with Face / Touch ID disabled. Passcode fallback only happens if the device does not have touch id or face id enabled.

Error handling is also different between the platforms, with iOS currently providing much more descriptive error codes.

App Permissions

Add the following permissions to their respective files:

In your AndroidManifest.xml:

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

In your Info.plist:

<key>NSFaceIDUsageDescription</key>
<string>Enabling Face ID allows you quick and secure access to your account.</string>

Requesting Face ID/Touch ID Authentication

Once you've linked the library, you'll want to make it available to your app by requiring it:

var TouchID = require('react-native-touch-id');

or

import TouchID from 'react-native-touch-id';

Requesting Face ID/Touch ID Authentication is as simple as calling:

TouchID.authenticate('to demo this react-native component', optionalConfigObject)
  .then(success => {
    // Success code
  })
  .catch(error => {
    // Failure code
  });

Example

Using Face ID/Touch ID in your app will usually look like this:

import React from "react"
var TouchID = require('react-native-touch-id');
//or import TouchID from 'react-native-touch-id'

class YourComponent extends React.Component {
  _pressHandler() {
    TouchID.authenticate('to demo this react-native component', optionalConfigObject)
      .then(success => {
        AlertIOS.alert('Authenticated Successfully');
      })
      .catch(error => {
        AlertIOS.alert('Authentication Failed');
      });
  },

  render() {
    return (
      <View>
        ...
        <TouchableHighlight onPress={this._pressHandler}>
          <Text>
            Authenticate with Touch ID
          </Text>
        </TouchableHighlight>
      </View>
    );
  }
};

Methods

authenticate(reason, config)

Attempts to authenticate with Face ID/Touch ID. Returns a Promise object.

Arguments

  • reason - optional - String that provides a clear reason for requesting authentication.

  • config - optional - configuration object for more detailed dialog setup:

    • title - Android - title of confirmation dialog
    • imageColor - Android - color of fingerprint image
    • imageErrorColor - Android - color of fingerprint image after failed attempt
    • sensorDescription - Android - text shown next to the fingerprint image
    • sensorErrorDescription - Android - text shown next to the fingerprint image after failed attempt
    • cancelText - Android - cancel button text
    • fallbackLabel - iOS - by default specified 'Show Password' label. If set to empty string label is invisible.
    • unifiedErrors - return unified error messages (see below) (default = false)
    • passcodeFallback - iOS - by default set to false. If set to true, will allow use of keypad passcode.

Examples

const optionalConfigObject = {
  title: 'Authentication Required', // Android
  imageColor: '#e00606', // Android
  imageErrorColor: '#ff0000', // Android
  sensorDescription: 'Touch sensor', // Android
  sensorErrorDescription: 'Failed', // Android
  cancelText: 'Cancel', // Android
  fallbackLabel: 'Show Passcode', // iOS (if empty, then label is hidden)
  unifiedErrors: false, // use unified error messages (default false)
  passcodeFallback: false, // iOS - allows the device to fall back to using the passcode, if faceid/touch is not available. this does not mean that if touchid/faceid fails the first few times it will revert to passcode, rather that if the former are not enrolled, then it will use the passcode.
};

TouchID.authenticate('to demo this react-native component', optionalConfigObject)
  .then(success => {
    AlertIOS.alert('Authenticated Successfully');
  })
  .catch(error => {
    AlertIOS.alert('Authentication Failed');
  });

isSupported()

Returns a Promise that rejects if TouchID is not supported. On iOS resolves with a biometryType String of FaceID or TouchID.

Examples

const optionalConfigObject = {
  unifiedErrors: false // use unified error messages (default false)
  passcodeFallback: false // if true is passed, itwill allow isSupported to return an error if the device is not enrolled in touch id/face id etc. Otherwise, it will just tell you what method is supported, even if the user is not enrolled.  (default false)
}

TouchID.isSupported(optionalConfigObject)
  .then(biometryType => {
    // Success code
    if (biometryType === 'FaceID') {
        console.log('FaceID is supported.');
    } else {
        console.log('TouchID is supported.');
    }
  })
  .catch(error => {
    // Failure code
    console.log(error);
  });

Errors

There are various reasons why biomentric authentication may not be available or fail. TouchID.isSupported and TouchID.authenticate will return an error representing the reason.

iOS Errors

Format:

{
  name: "TheErrorCode",
  message: "the error message",
  details: {
    name: "TheErrorCode",
    message: "the error message"
  }
}
name message
LAErrorAuthenticationFailed Authentication was not successful because the user failed to provide valid credentials.
LAErrorUserCancel Authentication was canceled by the user—for example, the user tapped Cancel in the dialog.
LAErrorUserFallback Authentication was canceled because the user tapped the fallback button (Enter Password).
LAErrorSystemCancel Authentication was canceled by system—for example, if another application came to foreground while the authentication dialog was up.
LAErrorPasscodeNotSet Authentication could not start because the passcode is not set on the device.
LAErrorTouchIDNotAvailable Authentication could not start because Touch ID is not available on the device
LAErrorTouchIDNotEnrolled Authentication could not start because Touch ID has no enrolled fingers.
LAErrorTouchIDLockout Authentication failed because of too many failed attempts.
RCTTouchIDUnknownError Could not authenticate for an unknown reason.
RCTTouchIDNotSupported Device does not support Touch ID.

More information on errors can be found in Apple's Documentation.

Android errors

Format:

{
  name: "Touch ID Error",
  message: "Touch ID Error",
  details: "the error message",
  code: "THE_ERROR_CODE"
}

isSupported:

name message details code
Touch ID Error Touch ID Error Not supported. NOT_SUPPORTED
Touch ID Error Touch ID Error Not supported. NOT_AVAILABLE
Touch ID Error Touch ID Error Not supported. NOT_PRESENT
Touch ID Error Touch ID Error Not supported. NOT_ENROLLED

authenticate:

name message details code
Touch ID Error Touch ID Error Not supported NOT_SUPPORTED
Touch ID Error Touch ID Error Not supported NOT_AVAILABLE
Touch ID Error Touch ID Error Not supported NOT_PRESENT
Touch ID Error Touch ID Error Not supported NOT_ENROLLED
Touch ID Error Touch ID Error failed AUTHENTICATION_FAILED
Touch ID Error Touch ID Error cancelled AUTHENTICATION_CANCELED
Touch ID Error Touch ID Error Too many attempts. Try again Later. FINGERPRINT_ERROR_LOCKOUT
Touch ID Error Touch ID Error Too many attempts. Fingerprint sensor disabled. FINGERPRINT_ERROR_LOCKOUT_PERMANENT
Touch ID Error Touch ID Error ? FINGERPRINT_ERROR_UNABLE_TO_PROCESS,
Touch ID Error Touch ID Error ? FINGERPRINT_ERROR_TIMEOUT,
Touch ID Error Touch ID Error ? FINGERPRINT_ERROR_CANCELED,
Touch ID Error Touch ID Error ? FINGERPRINT_ERROR_VENDOR,

Unified errors

Format:

{
  name: "TouchIDError",
  message: "the error message",
  code: "THE_ERROR_CODE"
}
name message code
TouchIDError Authentication failed AUTHENTICATION_FAILED
TouchIDError User canceled authentication USER_CANCELED
TouchIDError System canceled authentication SYSTEM_CANCELED
TouchIDError Biometry hardware not present NOT_PRESENT
TouchIDError Biometry is not supported NOT_SUPPORTED
TouchIDError Biometry is not currently available NOT_AVAILABLE
TouchIDError Biometry is not enrolled NOT_ENROLLED
TouchIDError Biometry timeout TIMEOUT
TouchIDError Biometry lockout LOCKOUT
TouchIDError Biometry permanent lockout LOCKOUT_PERMANENT
TouchIDError Biometry processing error PROCESSING_ERROR
TouchIDError User selected fallback USER_FALLBACK
TouchIDError User selected fallback not enrolled FALLBACK_NOT_ENROLLED
TouchIDError Unknown error UNKNOWN_ERROR

License

Copyright (c) 2015, Naoufal Kadhom

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

Comments
  • (Version 4.3.0)TouchID.isSupported() returns

    (Version 4.3.0)TouchID.isSupported() returns "TouchID" even when there is no fingerprints available

    Checked on IOS. Till now it worked perfectly on the version I was using(4.1.0), but now on simulator and on a real device that has no fingerprints TouchID.isSupported() returns "TouchID", even though it should return false/undefined.

    opened by ronilitman 30
  • Android Support

    Android Support

    This PR adds support for using Fingerprint Authentication on Android.

    It keeps the interface mostly the same, aside from allowing the user to pass in a config object to change the title and color of the pop-up requesting authentication.

    The error handling is not as robust as iOS, but future PRs would be welcome to improve this.

    Readme will be updated with an image showing it working on Android shortly.

    I've tested this by creating a new project with react-native init for "react-native": "0.48.1", and it seems to be working for both iOS and Android.

    thanks to @sunto for doing the bulk of the work!

    Test Plan:

    • [x] - iOS still works as expected. (no changes were made to any iOS code, so this should be fine)
    • [x] - Android auth works when isSupported is true
    • [x] - Calling authenticate when isSupported is false doesn't die.
    • [x] - Calling isSupported when Android has no fingerprint reader works
    • [x] - If auth is supported but no fingerprints are enrolled on phone, Android doesn't die.
    • [x] - If not config object is passed into Android, it defaults to the default config.
    • [x] - If config object is passed into Android, it uses the default config.
    • [x] - Android auth works 🎉
    opened by zibs 20
  • Feature/face

    Feature/face

    Overview

    • isSupported now resolves to biometryType instead of true.
    • biometryType can be FaceID or TouchID.
    • Updates docs
    • Adds a new example that builds with 0.50 (Will delete the other example when the Android PR is merged)
    • Closes #57

    Screen

    The CTA copy is generated based on biometryType img_0003

    opened by naoufal 15
  • Fix/optional is supported config

    Fix/optional is supported config

    We needed the ability to detect if the user did have TouchID/FaceID but had not enrolled, the way it was handled before we could not access the error from the canEvaluatePolicy call due to it falling back to passcode.

    This code changes that so you can optionally pass config = { passcodeFallback: false } to the TouchID.isSupported() call, by providing false you are able to get access to the correct error in case of the user not being enrolled.

    Note: The default for passcodeFallback is set to true so this doesn't break backwards compatibility

    Also, cleaned up the error handling inside the TouchID.m file.

    opened by pilsy 13
  • RN build failing because of a missing intellij-core library

    RN build failing because of a missing intellij-core library

    Hi,

    react-native-touch-id: 4.1.0 [PROBLEM SOLVED IN 4.1.1] RN version: 0.57.3

    Notice: Same exact configuration was working yesterday (my colleagues with the jar in cache can still build the app)

    Since this morning my build are failing because of a missing jar on jcenter.bintray.com (the pom file is there but nor the jar file):

    FAILURE: Build failed with an exception.
    * What went wrong:
    A problem occurred configuring project ':react-native-touch-id'.
    > Could not resolve all artifacts for configuration ':react-native-touch-id:classpath'.
       > Could not find intellij-core.jar (com.android.tools.external.com-intellij:intellij-core:26.0.1).
         Searched in the following locations:
             https://jcenter.bintray.com/com/android/tools/external/com-intellij/intellij-core/26.0.1/intellij-core-26.0.1.jar
    

    Debug log attached: build_debug.log

    To be confirm but it might be related to the version of gradle https://github.com/naoufal/react-native-touch-id/blob/master/android/build.gradle

    The root cause does not look related to this react-native-touch-id but is there anything you could do? Thanks in advance for your help!

    P.S.: https://stackoverflow.com/questions/52946058/android-build-miss-intellij https://stackoverflow.com/questions/52946371/android-studio-could-not-find-intellij-core-jar

    opened by alno74d 13
  • Allow to hide or change text on fallback button on iOS

    Allow to hide or change text on fallback button on iOS

    This is extended version of #73. With this change it is possible to set custom text for Enter Password button or to hide it (for iOS). It is backward compatible - for current users all functionality will work same, until they set fallbackLabel option.

    Also I've updated documentation with new option.

    opened by mironiasty 13
  • Android crashes when authentication fails at second time

    Android crashes when authentication fails at second time

    It seems that android still keep the Fingerprint working after the first authentication.

    ERROR: RuntimeException: Illegal callback invocation from native module. This callback type only permits a single invocation from native code.

    TEST: Loop until authentication() returns true, at the second time this will crash.

    async validateTouchId(){
            let isAuthOk = false;
            while(!isAuthOk){
    
                try{
                    let responseAuth = await TouchID.authenticate('Authentication');
    
                    if(responseAuth){
                        isAuthOk = true;
                        return true;
                    }else{
                        throw responseAuth;
                    }
    
                } catch (e){
                    console.log("Error",e);
    
                    let successPromise = await new Promise((resolve, reject) => {
                        Alert.alert(
                            'Auth',
                            "Auth again.",
                            [
                                {text: 'Login again', onPress: () => {
                                        resolve(false);
                                    }},
                                {text: 'Try again', onPress: async () => {
                                        resolve(true);
                                    }},
                            ]
                        );
                    });
    
                    if(!successPromise){
                        return false;
                    }
                }
            }
        }
    
    bug 
    opened by renanpupin 13
  • Android: handle failed attempts with error message, icon color and description.

    Android: handle failed attempts with error message, icon color and description.

    • Current behaviour: Android, unlike iOS, closes the dialog after the first attempt.
    • Expected behaviour: Handle errors and allow system 5 attempts (default) before disabling sensor. Inform the user about the error.

    Issue discussed 156, 81, 92, 107

    Updated UI: screen shot 2018-10-12 at 11 52 21

    Updated config object:

    • replaced color for imageColor
    • added imageErrorColor (default: "#ff0000")
    • added sensorErrorDescription (default: "Failed")
    opened by srulfi 12
  • RCTTouchIDUnknownError - 100% of the time after certain criteria

    RCTTouchIDUnknownError - 100% of the time after certain criteria

    Hi,

    I've implemented the following rough structure which fires before allowing access to stored login API credentials.

    TouchID.isSupported()
            .then(supported => {
            TouchID.authenticate(`${Manifest.name} App credentials for ${username}`)
                      .then(success => {
                              // ... access credentials & login
                      })
                      .catch(err => {
                              // ... don't login
                      })
            })
    

    It works just fine until a particular point in production Apps. After which, authenticate() gives back RCTTouchIDUnknownError 100% of the time. I can happily use isSupported() to attempt to prompt the user and re-enable Touch ID, but it still refuses to show the Touch ID dialogue.

    Are there any known issues with this, or any particular reasons why Touch ID would be failing with an 'unknown' error?

    Sorry for any vagueness here but I'm at a point where there's no further info available to me. The application's state is correct as I would expect the Touch ID call to fire at this point, but the error is thrown instead.

    opened by ben-snaize 12
  • allow fallback to passcode if touchID is not enabled, enrolled or available

    allow fallback to passcode if touchID is not enabled, enrolled or available

    stores keychain item accessible only with user presence (fingerprint / passcode). Technique + code taken from here: https://www.secsign.com/fingerprint-validation-as-an-alternative-to-passcodes/

    opened by mvayngrib 12
  • PasscodeAuth fallback not working

    PasscodeAuth fallback not working

    I'm using the TouchID/FaceID authentication , and added the new passcodeFallback Config to the authenticate method. But I click Enter Passcode button, nothing happens.

    This is my Configuration Object:

    const optionalConfigObject: any = {
          title: 'Authentication Required',
          color: theme.stylesProperties.REGULAR_BLUE,
          fallbackLabel: 'Enter Passcode',
          // fallbackTitle: 'Return to Login',
          passcodeFallback: true
    }
    

    And here is Authentication performed

    TouchID.authenticate('Please scan your finger', optionalConfigObject)
          .then((_: any) => {
            // Some actions
          })
          .catch((error: TouchIDError) => {
            this.errorHandler(error)
          })
    

    How can I use Passcode fallback? There is extra configuration need it?

    opened by piny4man 11
  • Bump xmldom and react-native in /examples/BiometricAuthExample

    Bump xmldom and react-native in /examples/BiometricAuthExample

    Removes xmldom. It's no longer used after updating ancestor dependency react-native. These dependencies need to be updated together.

    Removes xmldom

    Updates react-native from 0.50.1 to 0.70.2

    Release notes

    Sourced from react-native's releases.

    0.70.2

    Added

    iOS specific

    Changed

    Fixed

    Android specific

    • Fix port as -1 if dev server without specifying port on Android (3d7e1380b4 by @​Kudo)

    You can participate in the conversation on the status of this release in this discussion.


    To help you upgrade to this version, you can use the upgrade helper ⚛️


    You can find the whole changelog history in the changelog.md file.

    0.70.1

    Added

    Changed

    Fixed

    ... (truncated)

    Changelog

    Sourced from react-native's changelog.

    v0.70.2

    Added

    iOS specific

    Changed

    Fixed

    Android specific

    • Fix port as -1 if dev server without specifying port on Android (3d7e1380b4 by @​Kudo)

    v0.70.1

    Added

    Changed

    Fixed

    Android specific

    iOS specific

    ... (truncated)

    Commits
    • b9c2975 [0.70.2] Bump version numbers
    • 13a2b11 Minor: Rename AccessibilityInfo.sendAccessibilityEvent_unstable to sendAccess...
    • 2de4cf0 chore(deps): bump CLI to 9.1.3 and Metro to 0.72.3 (#34803)
    • 7b53a24 Fix port as -1 if dev server without specifying port on Android (#34705)
    • b03f536 fix: KeyboardAvoidingView height when "Prefer Cross-Fade Transitions" is enab...
    • 764f584 Let ScrollView Know About Keyboard Opened Before Mount
    • 75d5679 feat: Add support for "Prefer Cross-Fade Transitions" into AccessibilityInfo ...
    • 73e5533 Add a pseudo flow declaration for AccessibilityInfo
    • 9fd7643 Revert "fix: KeyboardAvoidingView height when "Prefer Cross-Fade Transitions"...
    • a54ba33 [0.70.1] Bump version numbers
    • Additional commits viewable in compare view
    Maintainer changes

    This version was pushed to npm by fb, a new releaser for react-native since your current version.


    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump moment from 2.19.3 to 2.29.4 in /examples/TouchIDExample

    Bump moment from 2.19.3 to 2.29.4 in /examples/TouchIDExample

    Bumps moment from 2.19.3 to 2.29.4.

    Changelog

    Sourced from moment's changelog.

    2.29.4

    • Release Jul 6, 2022
      • #6015 [bugfix] Fix ReDoS in preprocessRFC2822 regex

    2.29.3 Full changelog

    • Release Apr 17, 2022
      • #5995 [bugfix] Remove const usage
      • #5990 misc: fix advisory link

    2.29.2 See full changelog

    • Release Apr 3 2022

    Address https://github.com/moment/moment/security/advisories/GHSA-8hfj-j24r-96c4

    2.29.1 See full changelog

    • Release Oct 6, 2020

    Updated deprecation message, bugfix in hi locale

    2.29.0 See full changelog

    • Release Sept 22, 2020

    New locales (es-mx, bn-bd). Minor bugfixes and locale improvements. More tests. Moment is in maintenance mode. Read more at this link: https://momentjs.com/docs/#/-project-status/

    2.28.0 See full changelog

    • Release Sept 13, 2020

    Fix bug where .format() modifies original instance, and locale updates

    2.27.0 See full changelog

    • Release June 18, 2020

    Added Turkmen locale, other locale improvements, slight TypeScript fixes

    2.26.0 See full changelog

    • Release May 19, 2020

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Support new React Native new architecture (TurboModules/Fabric)

    Support new React Native new architecture (TurboModules/Fabric)

    See https://reactnative.dev/docs/new-architecture-library-intro

    https://reactnative.dev/blog/2022/06/16/resources-migrating-your-react-native-library-to-the-new-architecture

    opened by tom-sherman 0
  • Bump async from 2.6.0 to 2.6.4 in /examples/TouchIDExample

    Bump async from 2.6.0 to 2.6.4 in /examples/TouchIDExample

    Bumps async from 2.6.0 to 2.6.4.

    Changelog

    Sourced from async's changelog.

    v2.6.4

    • Fix potential prototype pollution exploit (#1828)

    v2.6.3

    • Updated lodash to squelch a security warning (#1675)

    v2.6.2

    • Updated lodash to squelch a security warning (#1620)

    v2.6.1

    • Updated lodash to prevent npm audit warnings. (#1532, #1533)
    • Made async-es more optimized for webpack users (#1517)
    • Fixed a stack overflow with large collections and a synchronous iterator (#1514)
    • Various small fixes/chores (#1505, #1511, #1527, #1530)
    Commits
    Maintainer changes

    This version was pushed to npm by hargasinski, a new releaser for async since your current version.


    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Dg 21589 npe fixes

    Dg 21589 npe fixes

    fix NPE while invoking callback NullPointerException: Attempt to invoke interface method 'void com.rnfingerprint.FingerprintDialog$DialogResultListener.onCancelled()' on a null object reference

    opened by Dimon70007 0
Releases(v4.0.0)
A react-native interface for Touch 3D home screen quick actions

React Native Quick Actions Support for the new 3D Touch home screen quick actions for your React Native apps! This project currently supports iOS 9+ a

Jordan Byron 1k Nov 21, 2022
Touch ID module for Android

react-native-touch-id-android Fingerprint identity for Android based on https://github.com/ajalt/reprint NOTES: current latest version: v0.1.x for RN

Kalon.Tech 31 Jun 13, 2022
React Native authentication with iOS Passcode.

React Native Passcode Auth React Native Passcode Auth is a React Native library for authenticating users with iOS Passcode. It is an excellent fallbac

Naoufal Kadhom 103 Sep 24, 2022
An example React Native Firebase application integrating authentication.

Firebase Authentication Example for React Native Thank you for trying the Firebase Authentication example ?? Please note that limited support is offer

Invertase 93 Oct 12, 2022
React Native: social authentication with Google, using Context, TypeScript and environment variables

React Native, sistema de login social nativo usando uma conta do Google Primeiro passo clonar o repositório git clone [email protected]:r-santtos/Stu

Ricardo Santos 1 Dec 10, 2021
An example React Native Firebase application integrating authentication

Firebase Authentication Example for React Native Thank you for trying the Firebase Authentication example ?? Just want to try it? It's live right here

Shawn Fetanat 1 Feb 22, 2022
Alarm clock functionality for react native ios and android using react-native-push-notification and react-native-community/async-storage

react-native-simple-alarm Alarm clock functionality for react native ios and android built using react-native-push-notification and react-native-commu

Jordan Daniels 68 Nov 24, 2022
A barcode scanner component for react native - not maintained anymore - use react-native-camera

react-native-barcodescanner - not maintained anymore - use react-native-camera Version 0.4.0 of react-native-camera includes barcode scanning for andr

Idea Creation / E-GUMA 540 Oct 31, 2022
React Native CallKit utilises a brand new iOS 10 framework CallKit to make the life easier for VoIP developers using React Native.

React Native CallKit utilises a brand new iOS 10 framework CallKit to make the life easier for VoIP developers using React Native.

React Native WebRTC 121 Jan 6, 2022
React-native-wordle - A simple re-implementation of wordle using react native

react native wordle A simple re-implementation of wordle. guess the randomly cho

Ananthu P Kanive 16 Sep 23, 2022
React-native-esbuild: The fastest bundler for React Native

Fast bundler and dev server for react-native using esbuild

Joel Arvidsson 470 Nov 18, 2022
react native tooltip like never before, using leading packages like react-native-reanimated v2, framer-motion, and @gorhom/portal

react-native-tooltiplize react native tooltip like never before, using leading packages like react-native-reanimated v2, framer-motion, and @gorhom/po

Muhammad Saeed 24 Nov 7, 2022
Native filesystem access for react-native

react-native-fs Native filesystem access for react-native IMPORTANT For RN < 0.57 and/or Gradle < 3 you MUST install react-native-fs at version @2.11.

Hagen Hübel 4.6k Nov 17, 2022
react-native native module for In App Purchase.

Announcement React Native IAP hook is out. You can see medium post on how to use it. The react-native-iap module hasn't been maintained well recently.

dooboolab 2.2k Nov 23, 2022
Native sensors access for react-native

react-native-sensor-manager Wrapper for react-native. Accelerometer, Gyroscope, Magnetometer, Orientation, Step Counter, Thermometer, LightSensor, and

Kevin Primicerio 229 Aug 22, 2022
React Native: Native Bottom Sheet - Text View

ReactNative: Native Bottom Sheet Text View (Android/iOS): Deprecated Due to time constraint, this library is deprecated and not maintained anymore, Y

Pranav Raj Singh Chauhan 22 Jul 4, 2021
React Native Unofficial SDK for integrating MercadoPago PX Native UIs.

React Native Unofficial SDK for integrating MercadoPago PX Native UIs. Getting Started To integrate this SDK you can check out our docs. Add your App

BlackBox Vision 94 Nov 18, 2022
React Native: Native Photo Editor

ReactNative: Native Photo Editor (Android/iOS) If this project has helped you out, please support us with a star ?? This library is a React Native br

Pranav Raj Singh Chauhan 1k Nov 23, 2022
🔥 A well-tested feature-rich modular Firebase implementation for React Native. Supports both iOS & Android platforms for all Firebase services.

React Native Firebase React Native Firebase is a collection of official React Native modules connecting you to Firebase services; each module is a lig

Invertase 10.4k Nov 19, 2022