HarmonyOS鸿蒙Next用户认证

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

HarmonyOS鸿蒙Next用户认证

module.json5文件中配置用户认证权限:

“requestPermissions”: [ // User Authentication Kit(用户认证服务) // 用户认证权限,指纹,密码,面容 { “name”: “ohos.permission.ACCESS_BIOMETRIC” } ]

封装用户认证类:

封装用户认证类:

import { userAuth } from ‘@kit.UserAuthenticationKit’//用户认证能力 import { promptAction } from ‘@kit.ArkUI’//弹窗 import { BusinessError } from ‘@kit.BasicServicesKit’//错误类型

// User Authentication Kit用户认证 // 场景介绍:当前用户认证支持人脸识别和指纹识别,可应用于设备解锁、应用登录、支付等身份认证场景。

//用户认证管理封装类 export class UserAuthManager { // 认证类型列表 static authType: userAuth.UserAuthType[] = [ userAuth.UserAuthType.PIN, // PIN密码(模拟器支持) userAuth.UserAuthType.FINGERPRINT, // 指纹 userAuth.UserAuthType.FACE// 面容ID ] // 认证信任等级 static authTrustLevel: userAuth.AuthTrustLevel = userAuth.AuthTrustLevel.ATL3

// 查询认证能力是否支持,同时检测多项能力,有一项支持即可
static checkUserAuthSupport() {
    const authTypeRes = UserAuthManager.authType.map((item) => {
        try {
            // 查询认证能力是否支持,注意这里需要用 try catch
            userAuth.getAvailableStatus(item, UserAuthManager.authTrustLevel)
            return true
        } catch {
            return false
        }
    })
    // 有一项支持即可
    return authTypeRes.some(v => v === true)//some返回值是布尔值
}

//进行用户认证订阅
static StartUserAuth(): Promise<boolean> {
    return new Promise((resolve) => {
        // 设置认证参数
        const authParam: userAuth.AuthParam = {
            challenge: new Uint8Array([49, 49, 49, 49, 49, 49]),// 挑战值,用来防重放攻击。
            authType: UserAuthManager.authType,// 认证类型列表
            authTrustLevel: UserAuthManager.authTrustLevel// 认证信任等级
        };

        // 配置认证界面
        const widgetParam: userAuth.WidgetParam = {
            title: '请进行身份认证', //认证时提示的标题内容
        };

        try {
            // 获取认证对象实例
            let userAuthInstance = userAuth.getUserAuthInstance(authParam, widgetParam);
            console.log('1result---获取用户认证实例成功,开启userAuthInstance.on事件订阅认证结果');
            // 订阅认证结果
            userAuthInstance.on('result', {
                onResult(result) {
                    console.log('3result---实例结果是' + JSON.stringify(result));
                    // 最终认证的结果
                    if (result.result === 12500000) {
                        resolve(true)
                    } else {
                        resolve(false)
                    }
                    // 取消订阅认证结果
                    userAuthInstance.off('result');
                }
            });
            console.log('2result---调用userAuthInstance.start开启订阅认证');
            // 启动订阅认证
            userAuthInstance.start();
        } catch (error) {
            const err: BusinessError = error as BusinessError;
            promptAction.showToast({ message: '验证出错' + err.message })
        }
    })
}

}


更多关于HarmonyOS鸿蒙Next用户认证的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

HarmonyOS鸿蒙Next的用户认证系统基于分布式技术,支持多设备协同认证。它采用了统一的身份认证框架,用户可以通过一次认证,在多设备间无缝切换和使用服务。系统支持多种认证方式,包括密码、指纹、面部识别等生物特征认证,以及基于硬件的安全认证。鸿蒙Next的认证机制还集成了TEE(可信执行环境)和SE(安全元件)技术,确保用户数据的安全性和隐私保护。此外,鸿蒙Next的用户认证系统还支持与第三方应用和服务的集成,提供统一的认证接口,简化开发者的集成流程。

更多关于HarmonyOS鸿蒙Next用户认证的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


HarmonyOS鸿蒙Next的用户认证系统采用了多层次的安全机制,包括生物识别(如指纹、面部识别)、密码认证以及基于硬件的安全芯片保护。系统支持多用户管理,每个用户的数据和应用权限独立,确保隐私安全。此外,鸿蒙Next还引入了动态信任评估机制,根据用户行为和环境变化实时调整安全策略,提升认证的灵活性和安全性。开发者可通过HarmonyOS SDK集成这些认证功能,为用户提供无缝且安全的体验。

回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!