6

我正在构建一个android应用程序,我需要使用Fingerprint api通过用户名和密码(在支持上)对用户进行身份验证。

这是我用最简单的术语理解我需要做的事情。

  1. 在用户输入用户名和密码并成功通过后端身份验证后登录时,我会生成一个带有这些凭据的特定密钥库并将其存储到 androidkeystore。

  2. 下次登录时,如果用户通过指纹成功进行身份验证,则从 android 密钥库中检索凭据(用户名和密码),并使用这些凭据在后端对用户进行身份验证。

我已关注: http ://www.techotopia.com/index.php/An_Android_Fingerprint_Authentication_Tutorial

这提供了一个很好的示例,说明如何使用指纹 API 对设备的用户进行身份验证。但是如何取回凭据,以便我可以使用后端对用户进行身份验证?

对于我想做的事情,是否有任何步骤、建议或详细示例?

谢谢。

4

1 回答 1

1

在您提出的解决方案中,每次用户登录时后端仍会收到用户名+密码。这意味着您的应用程序必须存储用户的用户名和密码。避免这种情况可能是谨慎的。例如,如果稍后更改密码,您的应用将无法登录。此外,除非您特别小心,否则用户名和密码可能会通过 USB 调试使用adb backup.

另一种解决方案是让客户端生成一个 Android Keystore 密钥对,每次使用私钥时都需要用户身份验证(指纹验证)。然后,后端提供一个操作来注册一个公钥,以作为用户的帐户进行身份验证。注册操作需要一个公钥、用户名和密码。如果用户名+密码验证,则为该帐户注册公钥。然后扩展登录操作以支持通过让客户端使用相应的私钥签署由后端生成的质询/随机数来验证客户端。如果签名验证,后端假定这仍然是最初使用用户名 + 密码注册公钥的同一个客户端。

于 2016-07-13T01:44:17.983 回答