32

最近接到一个私单,需要小程序里面实现指纹验证。。废话不多说,,先查小程序api。


好的,在翻阅小程序api中,发现有一个生物认证的api。分别是wx.checkIsSoterEnrolledInDevice , wx.checkIsSupportSoterAuthentication 和 wx.startSoterAuthentication。
先从checkIsSupportSoterAuthentication说起,文档解释这是获取本机支持的 SOTER 生物认证方式。就是获取你这个手机有什么生物功能。

代码先行:

wx.checkIsSupportSoterAuthentication({
  success(res) {
    console.log(res)
  }
})

打印的结果是:
clipboard.png
clipboard.png
根据小程序api可以得知,我的i7支持指纹功能.

第二步,要讲解的是checkIsSoterEnrolledInDevice。。这个api的大意是,获取手机的指纹信息。。这里有个坑,自己造成的坑,特意说明一下。。自己手机没录入指纹去解锁屏幕,所以手机里面没有我的指纹信息。。。如果你运行这个函数,他得出的结果为0.因为没指纹。。

wx.checkIsSoterEnrolledInDevice({
  checkAuthMode: 'fingerPrint',   //这是根据上一步得知,我手机支持指纹。
  success(res) {
    console.log(res)
  }
})

结果如下,可得知用户已经录入了指纹。

clipboard.png

最后一步,startSoterAuthentication开始验证指纹是否是机主本人。

wx.startSoterAuthentication({
   requestAuthModes: ['fingerPrint'],//启动指纹认证
   challenge: '123456',//这个参数api解释是因子。。反正没看懂,乱填的
   authContent: '请用指纹解锁',//提示框内容
   success(res) {
    console.log(res)
   }
})

clipboard.png

获取成功是得出这样的结果:(如果指纹验证不通过,是没有信息打印的)
clipboard.png

好了,大概就是这样。。。


yyblog
278 声望3 粉丝

学习中,将平时项目用到的记录在这里