如何将 android 生物识别与 firebase 电子邮件身份验证结合使用?

How to use android biometrics with firebase email authentication?

我正在尝试使用 firebase 电子邮件身份验证并启用生物识别。

我能得出的解决方案是:

  1. 启用生物识别并获取指纹令牌
  2. 使用此令牌
  3. 加密用户的username+password
  4. 将加密的 username+password 存储在应用存储中
  5. 当用户使用生物识别技术进行身份验证时,应用会解密存储的 username+password 并登录 firebase。

问题当然是在本地存储加密 username+password 的困难选择。

有没有更好的选择比如

专业应用如何使用 firebase?

将对称和非对称密钥概念与 Android 密钥库一起使用

在使用 Android 密钥库时遵循 Salesforce 移动 SDK 策略 (更多详情:https://developer.salesforce.com/docs/atlas.en-us.mobile_sdk.meta/mobile_sdk/auth_secure_key_storage_android.htm

步骤总结:

  1. 应用程序在安装时首先运行创建一个非对称密钥对和一个对称密钥
  2. 应用程序存储不对称。 Android 密钥库中的密钥。仅当用户解锁时才授予密钥库访问权限 phone(例如,使用个人识别码或生物识别技术。此步骤是可选的。您可以不执行此步骤)
  3. 应用程序使用非对称密钥对的 public 部分加密对称密钥并将其存储在共享首选项中
  4. 它是用于 encrypt/decrypt Firebase 令牌或用户名 + 密码的对称密钥,无论您要使用哪个
  5. 要访问加密的对称密钥,应用程序必须首先从Android密钥库中获取私钥,解密对称密钥然后使用它。