@beyondidentity/bi-sdk-react-native

Universal Passkeys for Developers


Keywords
react-native, ios, android, oauth, passkey, passkeys, passwordless, authentication
License
Apache-2.0
Install
npm install @beyondidentity/bi-sdk-react-native@2.0.1

Documentation


Beyond Identity

Universal Passkeys for Developers

All devices. Any protocol. Zero shared secrets.

Beyond Identity React Native SDK

License

Embedded SDK

Goodbye, passwords! The Beyond Identity SDK for React Native is a wrapper around our Native Embedded SDKs (Android and iOS), which allows you to embed the Passwordless experience into your product. Users will not need to download the Beyond Identity Authenticator. This SDK supports OIDC and OAuth2.

Installation

Using a bare expo or react-native init app.

  1. Install the SDK:
yarn add @beyondidentity/bi-sdk-react-native

or

npm install @beyondidentity/bi-sdk-react-native
  1. Update Native Requirements in your ios/android folders:

Please make sure your iOS project supports "minimum deployment target" 13.0 or later.

In your ios/Podfile set:

platform :ios, '13.0'

Go to your ios folder and run:

 pod install

Make sure your android/build.gradle supports minSdkVersion 26 or later

buildscript {
  ext {
    minSdkVersion = 26
  }
}

Add the following maven url to your repositories in your android/build.gradle

allprojects {
  repositories {
    maven {
      url "https://packages.beyondidentity.com/public/bi-sdk-android/maven/"
    }
  }
}

Using expo

⚠️ This package cannot be used in "Expo Go" because it requires custom native code. However you can leverage this library with a development build or prebuild.

  1. Install the SDK:
expo install @beyondidentity/bi-sdk-react-native
  1. Add the SDK config plugin to the plugins array of your app.{json,config.js,config.ts}:
{
  "expo": {
    "plugins": [
      ["@beyondidentity/bi-sdk-react-native"],
    ]
  }
}
  1. Set native requirments either with expo-build-properties or modify project static files

A. Modify the following static files

android/gradle.properties

android.minSdkVersion=26

ios/Podfile.properties.json

"ios.deploymentTarget": "13.0"

or

B. Add expo-build-properties to your app.{json,config.js,config.ts}:

expo install expo-build-properties
{
  "expo": {
    "plugins": [
      ["@beyondidentity/bi-sdk-react-native"],
      [
        "expo-build-properties",
        {
          "android": {
            "minSdkVersion": 26
          },
          "ios": {
            "deploymentTarget": "13.0"
          }
        }
      ]
    ]
  }
}
  1. Next, rebuild your app as described in the "Adding custom native code" guide.

Usage

Check out the Developer Documentation and the SDK API Documentation for more information.

Setup

First, before calling the Embedded functions, make sure to initialize the SDK. This can be done where you register your root component.

import { Embedded } from '@beyondidentity/bi-sdk-react-native';

Embedded.initialize(
  biometricAskPrompt: string,
  allowedDomains?: string[]
): Promise<Success>;

You may also add a listener to log native events with Embedded.logEventEmitter after initializing.

Example App

Clone the following repo and use the available comands to see the SDK in action!

To set up (run this first):

yarn bootstrap

To run the example app on Android:

yarn example android

To run the example app on iOS:

yarn example ios

To start the packager:

yarn example start