Android Fingerprint Auth
This plugin will open a native dialog fragment prompting the user to authenticate using their fingerprint. If the device has a secure lockscreen (pattern, PIN, or password), the user may opt to authenticate using that method as a backup.
Repo: https://github.com/mjwheatley/cordova-plugin-android-fingerprint-auth
Installation
- Install the Cordova and Ionic Native plugins:
$ ionic cordova plugin add cordova-plugin-android-fingerprint-auth $ npm install --save @ionic-native/android-fingerprint-auth@4 - Add this plugin to your app's module
 
Supported platforms
- Android
 
Usage
import { AndroidFingerprintAuth } from '@ionic-native/android-fingerprint-auth';
constructor(private androidFingerprintAuth: AndroidFingerprintAuth) { }
...
this.androidFingerprintAuth.isAvailable()
  .then((result)=> {
    if(result.isAvailable){
      // it is available
      this.androidFingerprintAuth.encrypt({ clientId: 'myAppName', username: 'myUsername', password: 'myPassword' })
        .then(result => {
           if (result.withFingerprint) {
               console.log('Successfully encrypted credentials.');
               console.log('Encrypted credentials: ' + result.token);
           } else if (result.withBackup) {
             console.log('Successfully authenticated with backup password!');
           } else console.log('Didn\'t authenticate!');
        })
        .catch(error => {
           if (error === this.androidFingerprintAuth.ERRORS.FINGERPRINT_CANCELLED) {
             console.log('Fingerprint authentication cancelled');
           } else console.error(error)
        });
    } else {
      // fingerprint auth isn't available
    }
  })
  .catch(error => console.error(error));
Instance Members
ERRORS
Convenience property containing all possible errors
encrypt(options)
Opens a native dialog fragment to use the device hardware fingerprint scanner to authenticate against fingerprints registered for the device.
| Param | Type | Details | 
|---|---|---|
| options | 
      AFAAuthOptions
     | 
    
       Options  | 
  
  Returns: Promise<AFAEncryptResponse>
decrypt(options)
Opens a native dialog fragment to use the device hardware fingerprint scanner to authenticate against fingerprints registered for the device.
| Param | Type | Details | 
|---|---|---|
| options | 
      AFAAuthOptions
     | 
    
       Options  | 
  
  Returns: Promise<AFADecryptOptions>
isAvailable()
Check if service is available
  Returns: Promise<AFAAvailableResponse> Returns a Promise that resolves if fingerprint auth is available on the device
delete(options)
Delete the cipher used for encryption and decryption by username
| Param | Type | Details | 
|---|---|---|
| options | 
      AFADeleteOptions
     | 
    
       Options  | 
  
  Returns: Promise<{ deleted: boolean }> Returns a Promise that resolves if the cipher was successfully deleted
AFAAuthOptions
| Param | Type | Details | 
|---|---|---|
| clientId | 
      string
     | 
    
       Required Used as the alias for your key in the Android Key Store.  | 
  
| username | 
      string
     | 
    
       Used to create credential string for encrypted token and as alias to retrieve the cipher. (optional) | 
  
| password | 
      string
     | 
    
       Used to create credential string for encrypted token (optional) | 
  
| token | 
      string
     | 
    
       Required for decrypt() Encrypted user credentials to decrypt upon successful authentication. (optional) | 
  
| disableBackup | 
      boolean
     | 
    
       Set to true to remove the "USE BACKUP" button (optional) | 
  
| locale | 
      string
     | 
    
       Change the language. (en_US or es) (optional) | 
  
| maxAttempts | 
      number
     | 
    
       The device max is 5 attempts. Set this parameter if you want to allow fewer than 5 attempts. (optional) | 
  
| userAuthRequired | 
      boolean
     | 
    
       Require the user to authenticate with a fingerprint to authorize every use of the key. New fingerprint enrollment will invalidate key and require backup authenticate to re-enable the fingerprint authentication dialog. (optional) | 
  
| dialogTitle | 
      string
     | 
    
       Set the title of the fingerprint authentication dialog. (optional) | 
  
| dialogMessage | 
      string
     | 
    
       Set the message of the fingerprint authentication dialog. (optional) | 
  
| dialogHint | 
      string
     | 
    
       Set the hint displayed by the fingerprint icon on the fingerprint authentication dialog. (optional) | 
  
AFAEncryptResponse
| Param | Type | Details | 
|---|---|---|
| withFingerprint | 
      boolean
     | 
    
       Biometric authentication  | 
  
| withBackup | 
      boolean
     | 
    
       Authentication using backup credential activity  | 
  
| token | 
      string
     | 
    
       base64encoded string representation of user credentials  | 
  
AFADecryptOptions
| Param | Type | Details | 
|---|---|---|
| withFingerprint | 
      boolean
     | 
    
       Biometric authentication  | 
  
| withBackup | 
      boolean
     | 
    
       Authentication using backup credential activity  | 
  
| password | 
      string
     | 
    
       FingerprintAuth.CipherMode.DECRYPT Decrypted password  | 
  
AFAAvailableResponse
| Param | Type | Details | 
|---|---|---|
| isAvailable | 
      boolean
     | 
    |
| isHardwareDetected | 
      boolean
     | 
    |
| hasEnrolledFingerprints | 
      boolean
     | 
    
AFADeleteOptions
| Param | Type | Details | 
|---|---|---|
| clientId | 
      string
     | 
    |
| username | 
      string
     |