diff --git a/src/PinCodeChoose.tsx b/src/PinCodeChoose.tsx index fbc2e73e..e5923013 100644 --- a/src/PinCodeChoose.tsx +++ b/src/PinCodeChoose.tsx @@ -1,4 +1,5 @@ import PinCode, { PinStatus } from './PinCode' +import { noBiometricsConfig } from './utils' import * as React from 'react' import { StyleProp, StyleSheet, TextStyle, View, ViewStyle } from 'react-native' @@ -101,7 +102,8 @@ class PinCodeChoose extends React.PureComponent { await Keychain.setInternetCredentials( this.props.pinCodeKeychainName, this.props.pinCodeKeychainName, - pinCode + pinCode, + noBiometricsConfig ) } if (!!this.props.finishProcess) this.props.finishProcess(pinCode) diff --git a/src/PinCodeEnter.tsx b/src/PinCodeEnter.tsx index 77ad3f4c..6e0db7ad 100644 --- a/src/PinCodeEnter.tsx +++ b/src/PinCodeEnter.tsx @@ -1,6 +1,6 @@ import delay from './delay' import PinCode, { PinStatus } from './PinCode' -import { PinResultStatus } from './utils' +import { PinResultStatus, noBiometricsConfig } from './utils' import AsyncStorage from '@react-native-community/async-storage' import * as React from 'react' @@ -112,7 +112,8 @@ class PinCodeEnter extends React.PureComponent { this.launchTouchID = this.launchTouchID.bind(this) if (!this.props.storedPin) { Keychain.getInternetCredentials( - this.props.pinCodeKeychainName + this.props.pinCodeKeychainName, + noBiometricsConfig ).then(result => { this.keyChainResult = result && result.password || undefined }).catch(error => { diff --git a/src/utils.ts b/src/utils.ts index b241289a..105f1120 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -1,3 +1,4 @@ +import { Platform } from 'react-native' import AsyncStorage from '@react-native-community/async-storage' import * as Keychain from 'react-native-keychain' @@ -21,3 +22,10 @@ export const deletePinCode = async (serviceName: string) => { export const resetInternalStates = async (asyncStorageKeys: string[]) => { return await AsyncStorage.multiRemove(asyncStorageKeys) } + +export const noBiometricsConfig = Platform.select({ + android: { + accessControl: Keychain.ACCESS_CONTROL.APPLICATION_PASSWORD, + }, + ios: {} +})