如何在设备中注册新指纹?

问题描述 投票:1回答:1

我正在RN中使用此库来实现指纹扫描react-native-fingerprint-scanner,并且可以很好地进行扫描,但是我想实现一个为此应用注册新指纹的功能。我绝对无法在互联网上找到与此相关的任何内容。

这是我到目前为止已实现的代码:

import React, { Component } from 'react';
import {
    Alert,
    Image,
    Text,
    TouchableOpacity,
    View,
    ViewPropTypes
} from 'react-native';
import FingerprintScanner from 'react-native-fingerprint-scanner';
import PropTypes from 'prop-types';

import ShakingText from './ShakingText.component';
import styles from './FingerprintPopup.component.styles';

class FingerprintPopup extends Component {

    constructor(props) {
        super(props);
        this.state = { errorMessage: undefined };
    }

    componentDidMount() {
        FingerprintScanner
            .authenticate({ onAttempt: this.handleAuthenticationAttempted })
            .then(() => {
                this.props.handlePopupDismissed();
                Alert.alert('Fingerprint Authentication', 'Authenticated successfully');
            })
            .catch((error) => {
                this.setState({ errorMessage: error.message });
                this.description.shake();
            });
    }

    componentWillUnmount() {
        FingerprintScanner.release();
    }

    handleAuthenticationAttempted = (error) => {
        this.setState({ errorMessage: error.message });
        this.description.shake();
    };

    render() {
        const { errorMessage } = this.state;
        const { style, handlePopupDismissed } = this.props;

        return (
            <View style={styles.container}>
                <View style={[styles.contentContainer, style]}>

                    <Image
                        style={styles.logo}
                        source={require('../pictures/finger_print.png')}
                    />

                    <Text style={styles.heading}>
                        Fingerprint{'\n'}Authentication
          </Text>
                    <ShakingText
                        ref={(instance) => { this.description = instance; }}
                        style={styles.description(!!errorMessage)}>
                        {errorMessage || 'Scan your fingerprint on the\ndevice scanner to continue'}
                    </ShakingText>

                    <TouchableOpacity
                        style={styles.buttonContainer}
                        onPress={handlePopupDismissed}
                    >
                        <Text style={styles.buttonText}>
                            BACK TO MAIN
            </Text>
                    </TouchableOpacity>

                </View>
            </View>
        );
    }
}

FingerprintPopup.propTypes = {
    style: ViewPropTypes.style,
    handlePopupDismissed: PropTypes.func.isRequired,
};

export default FingerprintPopup;

编辑:或至少我想提示用户设置指纹,如果他们已经没有在电话中注册任何手指。

android react-native authentication fingerprint biometrics
1个回答
0
投票
出于安全原因,我发现,没有一个操作系统(Android,iOS)可让您访问持有凭据的钥匙串。但是,我可以使用用户存储在设备内存中的内容来访问我的应用程序,如果其他应用程序实现了指纹功能,则它们可以与其他应用程序相同。

总而言之,您不能仅为您的应用注册新的唯一指纹!

© www.soinside.com 2019 - 2024. All rights reserved.