Store a password behind biometric authentication.
npm install react-native-biopass-updatedStore a password behind biometric authentication.
Currently only supports the Android platform.
This package uses androidx.biometric.BiometricPrompt with fallback to android.hardware.fingerprint.FingerprintManager for Android versions below Android P and can only be used in projects using googles androidx library. RN versions above 0.60 use androidx library by default.
With this I have also implemented device passcode fallback support in case of biometric authentication failure. While its easy to implement passcode fallback for BiometricPrompt its a bit tricky for FingerPrintManager and you will have to update the MainActivity.java of your application to do this. Follow the steps below in #MainActivity in ## Usage to do this.
``sh`
npm install --save react-native-biopass-updated
react-native link react-native-biopass-updated
`js
import BioPass from 'react-native-biopass-updated'
// Store a password for future retreival
BioPass.store("secret", password)
.then(() => console.log(Password stored!))Failed to store password: ${err}
.catch((err) => console.log()
// Retreive a stored password (will trigger Fingerprint / TouchID / FaceID prompt)
BioPass.retreive("Give us the secret password!")
.then((password) => console.log(The password was: ${password}))Failed to retreive password: ${err}
.catch((err) => console.log()
// Delete the stored password
BioPass.delete()
.then(() => console.log(Password deleted!))Failed to delete password: ${err}
.catch((err) => console.log()`
public class MainActivity extends AppCompatActivity {
private ReactInstanceManager mReactInstanceManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Instantiate ReactInstanceManager
this.mReactInstanceManager = ReactInstanceManager.builder()
.setApplication(getApplication())
.setCurrentActivity(this)
.setBundleAssetName("index.android.bundle")
.addPackage(new RNBioPassPackage())
.setUseDeveloperSupport(BuildConfig.DEBUG)
.setInitialLifecycleState(LifecycleState.RESUMED)
.build();
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Activity activity = this;
mReactInstanceManager.onActivityResult(activity, requestCode, resultCode, data);
}
}
1. In XCode, in the project navigator, right click Libraries ➜ Add Files to [your project's name]node_modules
2. Go to ➜ react-native-biopass-updated and add RNBioPass.xcodeprojlibRNBioPass.a
3. In XCode, in the project navigator, select your project. Add to your project's Build Phases ➜ Link Binary With LibrariesCmd+R
4. Run your project ()<
1. Open up android/app/src/main/java/[...]/MainActivity.javaimport com.reactlibrary.RNBioPassPackage;
- Add to the imports at the top of the filenew RNBioPassPackage()
- Add to the list returned by the getPackages() methodandroid/settings.gradle
1. Append the following lines to :
`gradle`
include ':react-native-biopass-updated'
project(':react-native-biopass-updated').projectDir = new File(rootProject.projectDir '../node_modules/react-native-biopass-updated/android')
1. Insert the following lines inside the dependencies block in android/app/build.gradle:
`gradle`
compile project(':react-native-biopass-updated')
#### Windows
1. In Visual Studio add the RNBioPass.sln in node_modules/react-native-biopass-updated/windows/RNBioPass.sln folder to their solution, reference from their app.MainPage.cs
2. Open up your appusing Bio.Pass.RNBioPass;
- Add to the usings at the top of the filenew RNBioPassPackage()
- Add to the List returned by the Packages` method