HarmonyOS鸿蒙Next中封装系统认证方法分享(支持密码、指纹、人脸)

HarmonyOS鸿蒙Next中封装系统认证方法详解介绍,支持密码、指纹、人脸。

// 指纹或面容ID(生物特征识别)
import { userAuth } from '@kit.UserAuthenticationKit'

class UserAuthManager {
  // 认证信任等级,等级越高,面容指纹检测时越严格
  private authTrustLevel: userAuth.AuthTrustLevel = userAuth.AuthTrustLevel.ATL3
  // 认证类型列表
  private authType: userAuth.UserAuthType[] = [
    userAuth.UserAuthType.PIN, // 锁屏密码
    userAuth.UserAuthType.FACE, // 面容
    userAuth.UserAuthType.FINGERPRINT,// 指纹
  ]
  // 设置认证参数
  private authParam: userAuth.AuthParam = {
    challenge: new Uint8Array([49, 49, 49, 49, 49, 49]), // 挑战值,用来防重放攻击。
    authType: this.authType, // 认证类型列表
    authTrustLevel: this.authTrustLevel, // 认证信任等级
  }
  // 配置认证界面
  private widgetParam: userAuth.WidgetParam = {
    title: '请进行身份认证', // 用户认证界面的标题, 仅在 PIN/指纹 密码时展示
  }

  // 查询认证能力是否支持,有一项支持即可
  checkUserAuthSupport() {
    // 遍历认证类型列表
    const res = this.authType.map((item) => {
      try {
        // 检测是否可用
        userAuth.getAvailableStatus(item, this.authTrustLevel)
        return true
      } catch {
        return false
      }
    })
    // some    条件中有一项为 true,结果就返回 true
    // every   条件中所有项为 true,结果才返回 true
    // 有一项支持即可
    return res.some(v => v === true)
  }

  startUserAuth(): Promise<boolean> {
    return new Promise((resolve, reject) => {
      try {
        // 1. 获取认证对象
        const userAuthInstance = userAuth.getUserAuthInstance(this.authParam, this.widgetParam)
        // 2. 订阅用户身份认证结果
        userAuthInstance.on('result', {
          // 返回认证结果
          onResult(result) {
            // 如果验证成功/失败
            if (result.result === userAuth.UserAuthResultCode.SUCCESS) {
              resolve(true)
            } else {
              resolve(false)
            }
            // 认证结束,取消订阅认证结果(释放资源)
            userAuthInstance.off('result')
          }
        })
        // 3. 执行用户认证
        userAuthInstance.start()
      } catch (e) {
        reject(e)
      }
    })
  }
}

export const userAuthManager = new UserAuthManager()

更多关于HarmonyOS鸿蒙Next中封装系统认证方法分享(支持密码、指纹、人脸)的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于HarmonyOS鸿蒙Next中封装系统认证方法分享(支持密码、指纹、人脸)的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,可以通过@ohos.userIAM.userAuth模块封装系统认证方法,支持密码、指纹和人脸识别。首先,引入相关模块,然后使用userAuth.getAuthInstance创建认证实例,设置认证类型(如userAuth.AuthType.PINuserAuth.AuthType.FACE等),最后调用auth方法进行认证。认证结果通过回调函数返回,开发者可根据结果进行后续处理。

回到顶部