首页 > 解决方案 > 如何确认 Biometric 的 onAuthenticationSucceeded 是否合法

问题描述

我有一个存储在我的应用程序 OAuth2 客户端中的刷新令牌。我无法访问调用使用刷新令牌的代码来获取新访问令牌的代码(并且不希望编写自定义代码)。现在,我使用 aBiometricPrompt来确认用户的身份。由于刷新令牌存储在 OAuth2 客户端中,因此我不需要使用密码来加密/解密刷新令牌。相反,当onAuthenticationSucceeded在我的生物识别调用中返回时,我只是告诉客户端获取一个新的访问令牌。

这里的问题是黑客可以onAuthenticationSucceeded用任何结果欺骗调用,并获取代码来刷新令牌,因为它没有使用密码来解密任何东西。

所以最后一个问题是:我能做些什么来确认onAuthenticationSucceeded回调的合法性吗?我正在考虑向身份验证调用添加密码:

biometricPrompt.authenticate(biometricPromptInfo, new BiometricPrompt.CryptoObject(cipher));

然后在onAuthenticationSucceeded回调中,我会确认回调包含与调用一起发送的原始密码 - 但我真的不知道如何比较这些密码。或者也许还有另一种解决方案?

标签: androidbiometrics

解决方案


推荐阅读