更新记录
1.0.0(2025-04-06)
适配安卓、iOS、鸿蒙Next
平台兼容性
Vue2 | Vue3 |
---|---|
√ | √ |
App | 快应用 | 微信小程序 | 支付宝小程序 | 百度小程序 | 字节小程序 | QQ小程序 |
---|---|---|---|---|---|---|
HBuilderX 4.21,Android:9.0,iOS:11,HarmonyNext:支持 | × | × | × | × | × | × |
钉钉小程序 | 快手小程序 | 飞书小程序 | 京东小程序 | 鸿蒙元服务 |
---|---|---|---|---|
× | × | × | × | × |
H5-Safari | Android Browser | 微信浏览器(Android) | QQ浏览器(Android) | Chrome | IE | Edge | Firefox | PC-Safari |
---|---|---|---|---|---|---|---|---|
× | × | × | × | × | × | × | × | × |
面容、指纹识别插件(uts-auth-login)
介绍
人脸指纹登录授权,可以使用手机自带的人脸、指纹进行生物识别,进而判断是否机主本人,从而进行授权验证,适配安卓、iOS、鸿蒙设备
使用
该插件支持鸿蒙、安卓、iOS系统设备;
鸿蒙设备测试面容、指纹适配正常;
受UTS插件适配以及华为SDK影响,最低支持安卓9.0,部分国内安卓厂商禁止使用人脸认证,只能调起指纹识别;
iOS最低支持11.0,设备会先进行面容识别(iOS从iphonex开始有的面容识别,之前版本支持指纹识别),认证失败两次会进行密码认证,继续失败手机会锁住,锁屏时间会累加
插件试用
vue代码调用示例
<template>
<view>
<page-head :title="title"></page-head>
<scroll-view>
<view>
<view class="uni-padding-wrap uni-common-mt">
<button @tap="testAuthLogin">人脸登录</button>
</view>
<view class="uni-padding-wrap uni-common-mt">
<button @tap="testGetEnrolledType">获取支持认证类型</button>
</view>
<view class="uni-padding-wrap uni-common-mt">
<button @tap="testDebug">调试日志开关</button>
</view>
</view>
</scroll-view>
</view>
</template>
<script>
import { enableDebug,getEnrolledType,authLogin } from "@/uni_modules/cz-authlogin";
export default {
data() {
return {
title:"AuthLogin 示例"
}
},
methods: {
testAuthLogin(){
authLogin({
param: {
fingerTitle :"指纹识别",
fingerSubTitle: "请触摸指纹传感器",
fingerContent :"请进行指纹识别",
passwordHint :"请输入您的密码进行认证",
isReuseUnlock:false
},
success: (response)=>{
console.log(""+response);
this.showToast(""+response);
},
fail:(response)=>{
console.log(response.errCode+ ", "+response.errMsg);
this.showToast(response.errCode+ ", "+response.errMsg);
}
});
},
testGetEnrolledType(){
uni.showToast({
icon:'none',
title:'是否支持面容指纹识别:'+getEnrolledType()
})
},
testDebug(){
enableDebug(false);
},
showToast(msg){
if(msg == ''){
uni.showToast({
icon:'none',
title:'未获取到相关信息'
})
}else {
uni.showToast({
icon:'none',
title: msg
})
}
}
}
}
</script>
<style>
</style>
权限申请
android
//离线打包需要在AndroidManifest.xml里面增加
<uses-permission android:name="android.permission.USE_BIOMETRIC" />
<uses-permission android:name="android.permission.USE_FINGERPRINT" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-sdk tools:overrideLibrary="com.huawei.security.localauthentication"/>
iOS
NSFaceIDUsageDescription
鸿蒙Next
ohos.permission.ACCESS_BIOMETRIC
API调用说明
API | 描述 | 参数 | 必须 |
---|---|---|---|
authLogin() | 开始识别 | fingerTitle 安卓指纹识别标题, fingerSubTitle 安卓指纹识别副标题, fingerContent 安卓指纹识别描述, passwordHint iOS密码认证的提示文本; isReuseUnlock 是否启用鸿蒙复用解锁; success:成功回调,失败可能会回调多次; fail:错误回调 |
否 |
getEnrolledType() | 当前设备支持生物识别的类型 | 1:指纹,2:面容,3:密码(鸿蒙Next),4:视觉(ios) | 无 |
debug() | 设置调试日志输出开关 | enableLog true开 false关,默认关 | 是 |
错误码
错误码 | 描述 |
---|---|
9010501 | System does not support recognition |
9010502 | System does not support biometric identification |
9010503 | System has not recorded face |
9010504 | System has not recorded fingerprint |
9010505 | System has not recorded any information |
9010506 | User canel |
附录
错误码 | 描述 | 解决方法 |
---|---|---|
12500001 | 认证失败 | 重新发起认证。 |
12500002 | 一般的操作错误。 | 系统服务内部工作异常,请稍后重新调用接口,或者重启设备尝试。 |
12500003 | 认证被取消 | 重新调用认证接口,发起认证。 |
12500004 | 认证操作超时 | 重新调用认证接口,发起认证。 |
12500005 | 认证类型不支持 | 请检查传入的认证类型参数,重新调用接口。 |
12500006 | 认证信任等级不支持 | 检查传入的authTrustLevel是否在合理范围,如果在合理范围,则是当前的设备不支持该认证信任等级。 |
12500007 | 认证服务已经繁忙 | 稍后重新发起认证。 |
12500009 | 认证被锁定 | 稍后重新发起一次成功的认证。 |
12500010 | 该类型的凭据没有录入 | 检查是否录入该类型的凭据,如果没有录入,则需要成功录入该类型凭据后再调用相关接口。 |
12500011 | 提示/通知切换自定义认证 | 重新调用认证接口,发起认证。 |
12500013 | 密码过期 | 用户前往设置更新系统锁屏密码,再次发起认证。 |
12700001 | 人脸录入过程中的操作失败 | 系统服务内部工作异常,请稍后重新调用接口,或者重启设备尝试。 |
错误码 | 值 | 描述 | 解决方法 |
---|---|---|---|
FACE_ERROR_HW_UNAVAILABLE | 1 | 硬件不可用。 | 请确认设备类型和OS版本是否支持,参见支持的设备。 |
FACE_ERROR_UNABLE_TO_PROCESS | 2 | 传感器无法处理当前图像。 | 如问题反复出现,请使用在线提单联系维护人员。 |
FACE_ERROR_TIMEOUT | 3 | 人脸识别超时。 | 请在短时间内完成识别。 |
FACE_ERROR_NO_SPACE | 4 | 没有足够的存储空间。人脸识别不会返回此错误码。 | - |
FACE_ERROR_CANCELED | 5 | 硬件临时不可用,操作被取消。 | 请稍后重试。 |
FACE_ERROR_UNABLE_TO_REMOVE | 6 | 删除人脸失败。人脸识别不会返回此错误码。 | - |
FACE_ERROR_LOCKOUT | 7 | 人脸失败次数过多,人脸识别锁定。 | 请稍后重试。 |
FACE_ERROR_VENDOR | 8 | 人脸与机主人脸不匹配。 | 如机主无法认证通过,建议重新录入人脸后重试。 |
FACE_ERROR_LOCKOUT_PERMANENT | 9 | 人脸失败次数过多,弱认证锁定。 | 请使用强认证(如PIN码)解锁。 |
FACE_ERROR_USER_CANCELED | 10 | FACE_ERROR_USER_CANCELED | - |
FACE_ERROR_NOT_ENROLLED | 11 | 用户未录入人脸。 | 请录入人脸。 |
FACE_ERROR_HW_NOT_PRESENT | 12 | FACE_ERROR_HW_NOT_PRESENT | 请确认设备类型和OS版本是否支持,参见支持的设备。 |
面容错误码 | 值 | 描述 | 解决方法 |
---|---|---|---|
BIOMETRIC_ERROR_HW_UNAVAILABLE | 1 | 硬件不可用。 | 请确认设备类型和OS版本是否支持。 |
BIOMETRIC_ERROR_NONE_ENROLLED | 11 | 用户没有注册任何生物信息 | 建议录入人脸后重试。 |
BIOMETRIC_ERROR_NO_HARDWARE | 12 | 没有生物识别硬件。 | - |
BIOMETRIC_ERROR_SECURITY_UPDATE_REQUIRED | 15 | 已发现安全漏洞,并且在安全更新解决此问题之前,传感器将不可用。 | - |
BIOMETRIC_SUCCESS | 0 | 识别成功 | - |
指纹错误码 | 值 | 描述 | 解决方法 |
---|---|---|---|
FINGERPRINT_ACQUIRED_GOOD | 0 | 获取指纹成功 | - |
FINGERPRINT_ACQUIRED_IMAGER_DIRTY | 3 | 怀疑或检测到传感器上有污垢,指纹图像噪音太大。 | 清洁后重试。 |
FINGERPRINT_ACQUIRED_INSUFFICIENT | 2 | 皮肤干燥或传感器可能脏污。 | 清洁后重试。 |
FINGERPRINT_ACQUIRED_PARTIAL | 1 | 采集到部分指纹。 | 应告知用户需要采取什么措施来解决此问题,例如“用力按压传感器”。 |
FINGERPRINT_ACQUIRED_TOO_FAST | 5 | 采集期间移动手指,指纹图像不完整 | 将手指在传感器上停留更长时间,适合线性阵列传感器。 |
FINGERPRINT_ACQUIRED_TOO_SLOW | 4 | 缺乏移动,导致指纹读取失败 | 请移动手指,适合需要滑动运动的线性阵列传感器。 |
FINGERPRINT_ERROR_CANCELED | 5 | 操作被取消,当用户切换、设备被锁定或另一个待处理操作阻止或禁用它时,可能会发生这种情况 | 稍后再试 |
FINGERPRINT_ERROR_HW_NOT_PRESENT | 12 | 设备不支持指纹传感器 | 请确认设备类型和OS版本是否支持。 |
FINGERPRINT_ERROR_HW_UNAVAILABLE | 1 | 硬件不可用 | 请稍后再试。 |
FINGERPRINT_ERROR_LOCKOUT | 7 | 操作被取消,因为 API 由于尝试次数过多而被锁定。此情况会在 5 次失败尝试后发生,并持续 30 秒。 | 请稍后再试。 |
FINGERPRINT_ERROR_LOCKOUT_PERMANENT | 9 | 由于 FINGERPRINT_ERROR_LOCKOUT 发生次数过多,操作被取消。在用户使用强身份验证(PIN/图案/密码)解锁之前,指纹身份验证将被禁用 | - |
FINGERPRINT_ERROR_NO_FINGERPRINTS | 11 | 用户没有登记任何指纹 | 请录入指纹后重试。 |
FINGERPRINT_ERROR_NO_SPACE | 4 | 没有足够的剩余存储空间来完成该操作 | - |
FINGERPRINT_ERROR_TIMEOUT | 3 | 等待过长导致超时 | - |
FINGERPRINT_ERROR_UNABLE_TO_PROCESS | 2 | 无法处理当前指纹图像 | - |
FINGERPRINT_ERROR_USER_CANCELED | 10 | 用户已取消 | - |
错误码 | 值 | 描述 | 解决方法 |
---|---|---|---|
appCancel | -9 | 该应用程序取消了身份验证。 | - |
systemCancel | -4 | 系统取消了认证。 | - |
userCancel | -2 | 用户点击身份验证对话框中的取消按钮。 | - |
biometryDisconnected | -13 | 该设备仅使用可拆卸附件支持生物识别,但未连接配对的附件。 | - |
biometryNotPaired | -12 | 该设备仅使用可拆卸配件支持生物识别,但未配对任何配件。 | - |
biometryLockout | -8 | 由于失败的尝试次数过多,生物认证已被锁定。 | - |
biometryNotAvailable | -6 | 该设备不支持生物识别。 | 请确认设备是否支持。 |
biometryNotEnrolled | -7 | 用户没有注册生物识别身份。 | 请注册。 |
authenticationFailed | -1 | 用户未能提供有效的凭据。 | - |
invalidContext | -10 | 上下文不可用。 | - |
invalidDimensions | -14 | - | - |
notInteractive | -1004 | 禁止显示所需的认证用户界面。 | - |
passcodeNotSet | -5 | 设备上未设置密码。 | 请设置密码后重试。 |
userFallback | -3 | 用户点击身份验证对话框中的回退按钮,但身份验证策略没有可用的回退按钮。 | - |
watchNotAvailable | -11 | 尝试使用 Apple Watch 进行身份验证失败。 | 请稍后重试。 |