更新记录

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开始有的面容识别,之前版本支持指纹识别),认证失败两次会进行密码认证,继续失败手机会锁住,锁屏时间会累加

插件试用

APK下载

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

附录

鸿蒙Next错误码

错误码 描述 解决方法
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版本是否支持,参见支持的设备

Android 面容错误码 指纹错误码

面容错误码 描述 解决方法
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 用户已取消 -

iOS错误码

错误码 描述 解决方法
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 进行身份验证失败。 请稍后重试。

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

暂无用户评论。

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问