实施Android指纹技术

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

我不确定这是否是提出与流量相关的问题的正确位置。如果您知道更好的部分,请指导我。

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

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

现在我们正在研究指纹认证技术,以及它如何在上面提供帮助。

我们的假设如下:

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

但是根据我们的研究,似乎指纹SDK不能以这种方式工作,它只是验证用户是否是手机的所有者,并且它没有为我们提供代码或代表指纹的东西。

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

谢谢。

android authentication fingerprint
1个回答
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: ");
        }
    });
}
© www.soinside.com 2019 - 2024. All rights reserved.