Ionic 5:如何使用指纹 AIO 保护移动应用程序

Posted

技术标签:

【中文标题】Ionic 5:如何使用指纹 AIO 保护移动应用程序【英文标题】:Ionic 5: how to secure mobile app with Fingerprint AIO 【发布时间】:2020-09-20 11:19:52 【问题描述】:

我正在使用指纹 AIO 来保护我的移动应用程序,但我对在这里做什么感到有点困惑。据我所知,这个库只公开了两个函数isAvailable()show()。所以我在我的项目上试了一下:

  import  FingerprintAIO, FingerprintOptions  from '@ionic-native/fingerprint-aio/ngx';

  initFingerprint() 
    const opt: FingerprintOptions = 
      title: 'Fingerprint - FaceID authentication',
      subtitle: "It's quick and easy",
      description: '',
      fallbackButtonTitle: 'Use Pin',
      cancelButtonTitle: 'Cancel',
      disableBackup: false
    
    this.faio.show(opt)
      .then((result) => 
        console.log(result)
        // What should I do here ???
      )
      .catch((error) => 
        console.log(error);
      )
  

上面的函数可以正常工作,但是在then()回调中应该怎么做呢?如何告诉我的服务器该用户已经用他们的手指(或面部)成功验证了身份?

我的假设是我需要在一个文本文件中加密他们的用户名和密码,然后如果他们成功通过身份验证,然后将其解密并将该信息发送到我的服务器。但这似乎有很多事情要做。

P/s:这里是图书馆:https://github.com/NiklasMerz/cordova-plugin-fingerprint-aio

【问题讨论】:

生物特征认证请求只返回yes/no来表明用户是否通过了认证。你如何处理结果取决于你。例如,您可以使用身份验证从钥匙串中获取凭据。在 ios 上,您可以让钥匙串中的凭据请求自动触发生物特征验证。 【参考方案1】:

试试看这篇文章: Cordova fingerprint authentication on server

我正在尝试和你做同样的事情:使用 FingerprintAIO 获取某种表示此人指纹的令牌,然后我将其链接到服务器中的用户名以允许指纹登录。

事实证明这不是它应该如何工作的。

投票最多的答案显示了一个有用的图表,概述了生物识别身份验证的工作原理。不幸的是,这有点困难:您需要存储一个密钥,而不是从指纹中获取一些唯一的密钥。这意味着你和我将不得不重新考虑我们计划如何重新考虑我们如何实施指纹认证!

【讨论】:

【参考方案2】:

改用这种风格:

this.faio.show(opt, successCallback, errorCallback);

function successCallback()
  alert("Authentication successful");


function errorCallback(error)
  alert("Authentication invalid " + error.message);

如果成功,你必须解锁应用程序并向前导航,如果出错,你应该阻止它并再次请求密码或指纹。

【讨论】:

我在问successCallback() 中要做什么。我需要告诉我的服务器该用户已成功通过身份验证,但我不知道该怎么做。通常,如果他们使用用户名 + 密码登录,我的服务器将使用该信息进行验证并使用令牌进行响应。但是如果他们使用指纹,我的服务器就没有任何验证。我需要在他们的设备上存储用户名/密码吗? @LêQuangBảo 首先,从逻辑上讲,在每个入口处询问用户名和密码是不合适的。所以我建议你只保留一个令牌,并在每个入口检查你是否有一个令牌。然后对于每个入口,他们要么输入一个密码,然后您检查它,然后检查令牌,然后向服务器发送请求。对于指纹,我有一个想法,但我不确定这样做是否正确,如果指纹有效,您可以通过编程方式输入密码。所以在成功回调中,可以调用成功pin函数。

以上是关于Ionic 5:如何使用指纹 AIO 保护移动应用程序的主要内容,如果未能解决你的问题,请参考以下文章

离子打字稿错误

使用oauth 2.0中的指纹登录

检测设备是用针锁或面部锁的指纹锁保护的吗?

保护隐私安全,移动端生物识别技术成新宠

如何实现滑动,捕捉移动页面(ionic + angularjs)

Ionic 5:如何写入本地 JSON 文件?