【问题标题】:Implementation of Android Fingerprint technologyAndroid指纹技术的实现
【发布时间】:2019-03-21 15:28:28
【问题描述】:

我不确定这是否适合询问与流程相关的问题。如果您知道更好的部分,请指导我。

我目前正在为多个组织做一个基于网络的系统,所以在我的登录表单上,有 3 个简单的字段:

  1. 公司代码,例如 CNN(所以我们可以使用相同的用户名,只要他们在不同的公司工作)
  2. 用户名,例如 james
  3. 密码

现在我们实际上正在研究指纹认证技术,了解它如何提供上述帮助。

我们的假设如下:

  1. 在我们的应用程序上,我们为用户提供了一个注册屏幕,而不是用户名/密码,他们在表单上点击他们的拇指,所以我们可以得到一些东西,也许是一个很长的随机字符串,代表指纹,然后我们传递这个代码连同他的个人资料一起发送到服务器,注册完成。
  2. 以上内容重复了我们成千上万的其他用户。
  3. 一位用户来到我们的应用登录屏幕,我们向他们展示了一个扫描仪,他们将拇指放在上面,我们将检索到的指纹代码发送到服务器进行匹配比较,然后我们对该用户进行身份验证。

但是从我们的研究来看,指纹SDK似乎不是这样工作的,它只是简单地验证用户是否是手机的所有者,并且它没有向我们提供代表指纹的代码或其他东西。

任何有开发工作/已部署指纹应用经验的人都可以与我分享一下指纹如何帮助验证您的用户吗?

谢谢。

【问题讨论】:

  • Android指纹SDK你说得对。无论如何,您可以使用外部指纹传感器,它是像 that 这样的 SDK。
  • @AndriiOmelchenko 感谢Andrii,但是我们不太愿意使用第三方SDK,在这种情况下,是不是意味着使用Android SDK,我们可以做的只是提供一个接口给用户,绑定指纹使用一组用户名/密码,所以将来它所做的只是使用登录屏幕中的指纹,检索存储的用户名/密码,然后传递给服务器?
  • “在这种情况下”是指外部指纹传感器?
  • @AndriiOmelchenko 不,抱歉我的意思是在这种情况下,如果我们使用 Android 的内部 SDK

标签: android authentication fingerprint


【解决方案1】:

你应该在 manifest.xml 中添加这一行 - <uses-feature android:name="android.hardware.fingerprint" android:required="false" />

这是显示指纹对话框并从用户交互中获取结果的代码示例:

    private void showFingerPrintDialog() {
    final FingerprintDialogBuilder dialogBuilder = new FingerprintDialogBuilder(ContextInstance)
            .setTitle(R.string.fingerprint_dialog_title)
            .setSubtitle(R.string.fingerprint_dialog_subtitle)
            .setDescription(R.string.fingerprint_dialog_description)
            .setNegativeButton(R.string.cancel);
    dialogBuilder.show(getSupportFragmentManager(), new AuthenticationCallback() {
        @Override
        public void fingerprintAuthenticationNotSupported() {
            Log.d(TAG, "fingerprintAuthenticationNotSupported: ");
        }

        @Override
        public void hasNoFingerprintEnrolled() {
            Log.d(TAG, "hasNoFingerprintEnrolled: ");
        }

        @Override
        public void onAuthenticationError(int errorCode, @Nullable CharSequence errString) {
            Log.d(TAG, "onAuthenticationError: ");
        }

        @Override
        public void onAuthenticationHelp(int helpCode, @Nullable CharSequence helpString) {
            Log.d(TAG, "onAuthenticationHelp: ");
        }

        @Override
        public void authenticationCanceledByUser() {
            Log.d(TAG, "authenticationCanceledByUser: ");
        }

        @Override
        public void onAuthenticationSucceeded() {
            Log.d(TAG, "onAuthenticationSucceeded: ");
            /*SaveResult in db or preference*/
        }

        @Override
        public void onAuthenticationFailed() {
            Log.d(TAG, "onAuthenticationFailed: ");
        }
    });
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-27
    • 2013-04-09
    相关资源
    最近更新 更多