#react-native
#react-native
Вопрос:
Я пытаюсь использовать биометрию react native, но после того, как я создал и сохранил открытый ключ (как состояние в примере кода ниже), он никогда не совпадает с подписью, сгенерированной впоследствии тем же пальцем. Как я могу проверить отпечаток пальца?
код:
registerFingerPrint = () => {
Biometrics.isSensorAvailable()
.then((biometryType) => {
if (biometryType === Biometrics.TouchID) {
Biometrics.createKeys('Confirm fingerprint')
.then((publicKey) => {
console.log("create", publicKey)
this.setState({
create: publicKey
})
})
}
})
}
fingerPrintCheck = () => {
Biometrics.createSignature('Sign in', payload)
.then((signature) => {
if (this.state.create === signature){
console.log("success");
}else {
console.log('failure'); //always returns failure here
}
})
}
render() {
return (
<View style={styles.container}>
<TouchableHighlight onPress={()=> this.registerFingerPrint()}>
<Text style={{ marginBottom: 10}}>
Register
</Text>
</TouchableHighlight>
<TouchableHighlight onPress={()=> this.fingerPrintCheck()}>
<Text>
Authenticate with Biometrics
</Text>
</TouchableHighlight>
</View>
);
}
}
Ответ №1:
let epochTimeSeconds = Math.round((new Date()).getTime() / 1000).toString()
let payload = epochTimeSeconds 'some message' ;
Biometrics.createSignature('Sign in Test', payload)
.then((signature) => {
console.log(payload " signature " signature)
verifySignatureWithServer(signature, payload)
})
вам необходимо проверить проверку на стороне сервера, используя комбинацию сгенерированной подписи и полезной нагрузки.
перейдите на этот сайт и вставьте сгенерированный открытый ключ, подпись, полезную нагрузку и проверьте их.
https://8gwifi.org/RSAFunctionality?rsasignverifyfunctions=rsasignverifyfunctionsamp;keysize=512
Комментарии:
1. это именно то, что нужно, но единственное, что осталось… Если я изменю идентификатор лица в настройках iOS, он по-прежнему генерирует переданную подпись, но я ожидаю, что если идентификатор лица будет сброшен и установлен на новый (тот же человек или другой человек, но идентификатор лица новый) — проверка не должна пройти, потому что технически это другой человек!