在React Native中将Touch ID与Firebase Auth集成

时间:2018-10-22 09:45:29

标签: firebase react-native firebase-authentication touch-id

我是React Native的新手,但是我创建了一个使用react-native-firebase程序包(基于https://github.com/faahmad/react-native-firebase-auth的注册/登录),我想合并touch ID以允许用户登录,但我在网上找不到任何示例(以Firebase原生提供)。我看了一下可以直接实现的包react-native-fingerprint-scanner和react-native-touch-id,我只是不知道如何将Firebase auth和touch id绑在一起。感谢您提供任何帮助。

谢谢

1 个答案:

答案 0 :(得分:2)

这只是一个想法,尚未实现为“实际代码”,但是...这是我的两分钱,我打算如何使用它:

用户注册后,您可以使用AsyncStorageSQLite或其他方式存储他们的电子邮件和密码。然后将Login with fingerprint添加为用户设置页面中的功能。从那里,一旦用户决定再次登录,您就可以:

1-使用react-native-fingerprint-scanner给您的承诺。

2-从您选择的数据库中获取电子邮件和密码。

3-使用该数据通过Firebase进行身份验证并登录。

它看起来像这样:

handleLogin() {
    FingerprintScanner
        .authenticate({ description: 'Scan your fingerprint to login' })
        .then(() => {
            const sql = "select email, password from user";
            db.runQuery(sql, function(data) { // this is a made-up function
                const { email, pasword } = data
                firebase
                  .auth()
                  .signInWithEmailAndPassword(email, password)
                  .then(() => /*navigate to main page once authenticated*/)
                  .catch(error => this.setState({ errorMessage: error.message 
            });
    })
    .catch(console.error);
}

有待改进的地方,但这应该对您有用。希望能帮助到你。