生物识别认证的服务器端实现

mon*_*yfy 7 authentication biometrics node.js keycloak react-native

我们有一个基于微服务的系统,当前用户通过 keycloack(jwt) 进行身份验证,我们需要在这个现有系统中添加生物识别登录。首先,我们设计了如下的生物识别认证流程:

  1. 在客户端(移动应用程序)生成非对称密钥对。
  2. 与后端服务器共享公钥。
  3. 使用后端服务器上的公钥加密身份验证令牌(从 keykoack 生成的 jwt 访问令牌,最初从密码登录生成)。
  4. 将加密的令牌共享到移动应用程序并将其保存在设备本地。
  5. 使用生物识别 API 来访问私钥。
  6. 解密加密的令牌并将其用于进一步的身份验证。

但我遇到的问题是在以下情况下该怎么办:

  1. 访问令牌过期了?
  2. 即使超过了代币的生命周期,中途需要更新代币策略怎么办?

我的问题是:

  1. 这个流程正确且有意义吗?(流程参考自:参考线程
  2. 在与上述类似的情况下,生物识别身份验证采取的最佳实践是什么,或者流行的应用程序如何实施生物识别任何参考?

我从上周开始就试图解决这个问题,但没有成功。我非常感谢您的建议、提示和帮助。