共计 886 个字符,预计需要花费 3 分钟才能阅读完成。
最近接到一个私单,需要小程序里面实现指纹验证。。废话不多说,,先查小程序 api。
好的,在翻阅小程序 api 中,发现有一个生物认证的 api。分别是 wx.checkIsSoterEnrolledInDevice,wx.checkIsSupportSoterAuthentication 和 wx.startSoterAuthentication。先从 checkIsSupportSoterAuthentication 说起,文档解释这是获取本机支持的 SOTER 生物认证方式。就是获取你这个手机有什么生物功能。
代码先行:
wx.checkIsSupportSoterAuthentication({
success(res) {
console.log(res)
}
})
打印的结果是: 根据小程序 api 可以得知,我的 i7 支持指纹功能.
第二步,要讲解的是 checkIsSoterEnrolledInDevice。。这个 api 的大意是,获取手机的指纹信息。。这里有个坑,自己造成的坑,特意说明一下。。自己手机没录入指纹去解锁屏幕,所以手机里面没有我的指纹信息。。。如果你运行这个函数,他得出的结果为 0. 因为没指纹。。
wx.checkIsSoterEnrolledInDevice({
checkAuthMode: ‘fingerPrint’, // 这是根据上一步得知,我手机支持指纹。
success(res) {
console.log(res)
}
})
结果如下,可得知用户已经录入了指纹。
最后一步,startSoterAuthentication 开始验证指纹是否是机主本人。
wx.startSoterAuthentication({
requestAuthModes: [‘fingerPrint’],// 启动指纹认证
challenge: ‘123456’,// 这个参数 api 解释是因子。。反正没看懂,乱填的
authContent: ‘ 请用指纹解锁 ’,// 提示框内容
success(res) {
console.log(res)
}
})
获取成功是得出这样的结果:(如果指纹验证不通过,是没有信息打印的)
好了,大概就是这样。。。