HarmonyOS 鸿蒙Next 唤起面容/指纹识别后,每次获取的token不一样

发布于 1周前 作者 zlyuanteng 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 唤起面容/指纹识别后,每次获取的token不一样

开发面容/指纹登录,使用了三方库"@pura/harmony-utils" 中的AuthUtil onStart方法处理面容和指纹。业务需要扫脸后获得唯一的标识码存储到服务端,后续用户面容登录时候做比对。但目前接口返回的result中token每次都会变。  

想问下如何可以获取唯一不变的标识

2 回复
面容和指纹是通过系统的生物识别和密码进行录入设置的。根据您的业务场景来看,在点击登录时,调用此三方库的接口处理面容或者指纹,通过AuthUtil.userAuthInstance.on订阅认证结果,返回结果中的result字段为12500000时表示面容或指纹认证成功。

AuthUtil的使用示例可以参考:https://gitee.com/tongyuyan/harmony-utils/blob/master/entry/src/main/ets/pages/utils/AuthUtilPage.ets

示例中challenge的获取方式是通过AuthUtil.getChallenge()随机生成的。经测试,当调用onStart方法时就把challenge写为固定值,其返回的token中从字段"4"一直到字段"33"的值是和传入的challenge相同的。

该三方库的AuthUtil.onStart( )接口暂时获取不到固定的token值,您结合以上12500000字段和固定challenge值组合进行判断看是否满足。

在HarmonyOS鸿蒙Next系统中,唤起面容或指纹识别后,每次获取的token不一样的问题确实存在,这通常是为了增强安全性而设计的。每次认证都生成新的token,可以防止token被截获和滥用。

然而,这也带来了一个挑战,即如何确保每次获取的token能够正确地标识同一个用户。对此,可以在用户开通生物认证时获取一个初始的认证状态(state),在后续的认证过程中,对比当前的认证状态与初始状态是否一致。如果状态发生变化,可以要求用户重新进行密码认证,以确保用户凭据的一致性。

此外,还需要注意以下几点:

  1. 确保应用已正确接入HarmonyOS的推送服务,并配置了正确的应用签名和应用ID。
  2. 检查代码中是否有误传递token的情况,确保每次使用的token都是最新获取的。
  3. 如果问题持续存在,建议检查应用的日志输出,查找可能的错误信息或异常。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部