Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Resolve Face Id issue #281

Open
wants to merge 4 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
node_modules/
npm-debug.log
yarn-error.log
build/
# build/

# Xcode
#
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,7 @@ public void run() {
}

private PromptInfo getPromptInfo(String promptMessage, String cancelButtonText, boolean allowDeviceCredentials) {
PromptInfo.Builder builder = new PromptInfo.Builder().setTitle(promptMessage);
PromptInfo.Builder builder = new PromptInfo.Builder().setTitle(promptMessage).setConfirmationRequired(false);

builder.setAllowedAuthenticators(getAllowedAuthenticators(allowDeviceCredentials));

Expand All @@ -199,9 +199,9 @@ private PromptInfo getPromptInfo(String promptMessage, String cancelButtonText,

private int getAllowedAuthenticators(boolean allowDeviceCredentials) {
if (allowDeviceCredentials && !isCurrentSDK29OrEarlier()) {
return BiometricManager.Authenticators.BIOMETRIC_STRONG | BiometricManager.Authenticators.DEVICE_CREDENTIAL;
return BiometricManager.Authenticators.BIOMETRIC_WEAK | BiometricManager.Authenticators.DEVICE_CREDENTIAL;
}
return BiometricManager.Authenticators.BIOMETRIC_STRONG;
return BiometricManager.Authenticators.BIOMETRIC_WEAK;
}

private boolean isCurrentSDK29OrEarlier() {
Expand Down
154 changes: 154 additions & 0 deletions build/cjs/index.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,154 @@
/**
* Type alias for possible biometry types
*/
export declare type BiometryType = 'TouchID' | 'FaceID' | 'Biometrics';
interface RNBiometricsOptions {
allowDeviceCredentials?: boolean;
}
interface IsSensorAvailableResult {
available: boolean;
biometryType?: BiometryType;
error?: string;
}
interface CreateKeysResult {
publicKey: string;
}
interface BiometricKeysExistResult {
keysExist: boolean;
}
interface DeleteKeysResult {
keysDeleted: boolean;
}
interface CreateSignatureOptions {
promptMessage: string;
payload: string;
cancelButtonText?: string;
}
interface CreateSignatureResult {
success: boolean;
signature?: string;
error?: string;
}
interface SimplePromptOptions {
promptMessage: string;
fallbackPromptMessage?: string;
cancelButtonText?: string;
}
interface SimplePromptResult {
success: boolean;
error?: string;
}
/**
* Enum for touch id sensor type
*/
export declare const TouchID = "TouchID";
/**
* Enum for face id sensor type
*/
export declare const FaceID = "FaceID";
/**
* Enum for generic biometrics (this is the only value available on android)
*/
export declare const Biometrics = "Biometrics";
export declare const BiometryTypes: {
TouchID: string;
FaceID: string;
Biometrics: string;
};
export declare module ReactNativeBiometricsLegacy {
/**
* Returns promise that resolves to an object with object.biometryType = Biometrics | TouchID | FaceID
* @returns {Promise<Object>} Promise that resolves to an object with details about biometrics available
*/
function isSensorAvailable(): Promise<IsSensorAvailableResult>;
/**
* Creates a public private key pair,returns promise that resolves to
* an object with object.publicKey, which is the public key of the newly generated key pair
* @returns {Promise<Object>} Promise that resolves to object with details about the newly generated public key
*/
function createKeys(): Promise<CreateKeysResult>;
/**
* Returns promise that resolves to an object with object.keysExists = true | false
* indicating if the keys were found to exist or not
* @returns {Promise<Object>} Promise that resolves to object with details aobut the existence of keys
*/
function biometricKeysExist(): Promise<BiometricKeysExistResult>;
/**
* Returns promise that resolves to an object with true | false
* indicating if the keys were properly deleted
* @returns {Promise<Object>} Promise that resolves to an object with details about the deletion
*/
function deleteKeys(): Promise<DeleteKeysResult>;
/**
* Prompts user with biometrics dialog using the passed in prompt message and
* returns promise that resolves to an object with object.signature,
* which is cryptographic signature of the payload
* @param {Object} createSignatureOptions
* @param {string} createSignatureOptions.promptMessage
* @param {string} createSignatureOptions.payload
* @returns {Promise<Object>} Promise that resolves to an object cryptographic signature details
*/
function createSignature(createSignatureOptions: CreateSignatureOptions): Promise<CreateSignatureResult>;
/**
* Prompts user with biometrics dialog using the passed in prompt message and
* returns promise that resolves to an object with object.success = true if the user passes,
* object.success = false if the user cancels, and rejects if anything fails
* @param {Object} simplePromptOptions
* @param {string} simplePromptOptions.promptMessage
* @param {string} simplePromptOptions.fallbackPromptMessage
* @returns {Promise<Object>} Promise that resolves an object with details about the biometrics result
*/
function simplePrompt(simplePromptOptions: SimplePromptOptions): Promise<SimplePromptResult>;
}
export default class ReactNativeBiometrics {
allowDeviceCredentials: boolean;
/**
* @param {Object} rnBiometricsOptions
* @param {boolean} rnBiometricsOptions.allowDeviceCredentials
*/
constructor(rnBiometricsOptions?: RNBiometricsOptions);
/**
* Returns promise that resolves to an object with object.biometryType = Biometrics | TouchID | FaceID
* @returns {Promise<Object>} Promise that resolves to an object with details about biometrics available
*/
isSensorAvailable(): Promise<IsSensorAvailableResult>;
/**
* Creates a public private key pair,returns promise that resolves to
* an object with object.publicKey, which is the public key of the newly generated key pair
* @returns {Promise<Object>} Promise that resolves to object with details about the newly generated public key
*/
createKeys(): Promise<CreateKeysResult>;
/**
* Returns promise that resolves to an object with object.keysExists = true | false
* indicating if the keys were found to exist or not
* @returns {Promise<Object>} Promise that resolves to object with details aobut the existence of keys
*/
biometricKeysExist(): Promise<BiometricKeysExistResult>;
/**
* Returns promise that resolves to an object with true | false
* indicating if the keys were properly deleted
* @returns {Promise<Object>} Promise that resolves to an object with details about the deletion
*/
deleteKeys(): Promise<DeleteKeysResult>;
/**
* Prompts user with biometrics dialog using the passed in prompt message and
* returns promise that resolves to an object with object.signature,
* which is cryptographic signature of the payload
* @param {Object} createSignatureOptions
* @param {string} createSignatureOptions.promptMessage
* @param {string} createSignatureOptions.payload
* @returns {Promise<Object>} Promise that resolves to an object cryptographic signature details
*/
createSignature(createSignatureOptions: CreateSignatureOptions): Promise<CreateSignatureResult>;
/**
* Prompts user with biometrics dialog using the passed in prompt message and
* returns promise that resolves to an object with object.success = true if the user passes,
* object.success = false if the user cancels, and rejects if anything fails
* @param {Object} simplePromptOptions
* @param {string} simplePromptOptions.promptMessage
* @param {string} simplePromptOptions.fallbackPromptMessage
* @returns {Promise<Object>} Promise that resolves an object with details about the biometrics result
*/
simplePrompt(simplePromptOptions: SimplePromptOptions): Promise<SimplePromptResult>;
}
export {};
175 changes: 175 additions & 0 deletions build/cjs/index.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions build/cjs/index.js.map

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading