用户认证功能?

如题:用户认证功能?

阅读 409
1 个回答

功能场景描述及使用场景

一是涉密系统,需要高度安全防护地方;二是针对大规模人群的身份鉴别的技术;三是针对城市公共事务的市民应用;四是从现实生活进入互联网虚拟世界的认证应用。

核心代码解释

通过navigationButtonText属性进行用户认证。

import userAuth from '@ohos.userIAM.userAuth'
import PermissionManager from '../util/PermissionManager'
 
@Component
export struct UserAuth {
 
  build() {
    Column() {
      Text('用户认证').fontSize(50)
      Button('用户认证 身份认证类型:PIN码,信任等级 ATL4').width('80%')
        .onClick(async () => {
          const authParam : userAuth.AuthParam = {
            challenge: new Uint8Array([49, 49, 49, 49, 49, 49]),
            authType: [userAuth.UserAuthType.PIN],
            authTrustLevel: userAuth.AuthTrustLevel.ATL4,
          };
          const widgetParam :userAuth.WidgetParam = {
            title: '请输入锁屏密码'
          };
          try {
            const userAuthInstance = userAuth.getUserAuthInstance(authParam, widgetParam);
            userAuthInstance.on('result', {
              onResult(result) {
                console.log('wsf: userAuthInstance callback result = ' + JSON.stringify(result));
              }
            })
            await PermissionManager.getInstance().requestPermission(['ohos.permission.ACCESS_BIOMETRIC'])
            userAuthInstance.start()
          } catch (error) {
            console.error('wsf: auth catch error: ' + JSON.stringify(error));
          }
        })
 
      Button('用户认证 身份认证类型:FACE').width('80%')
        .onClick(async () => {
          const authParam : userAuth.AuthParam = {
            challenge: new Uint8Array([49, 49, 49, 49, 49, 49]),
            authType: [userAuth.UserAuthType.FACE],
            authTrustLevel: userAuth.AuthTrustLevel.ATL1,
          };
          const widgetParam :userAuth.WidgetParam = {
            title: '请输入密码',
          };
          try {
            const userAuthInstance = userAuth.getUserAuthInstance(authParam, widgetParam);
            userAuthInstance.on('result', {
              onResult(result) {
                console.log('wsf: userAuthInstance callback result = ' + JSON.stringify(result));
              }
            })
            await PermissionManager.getInstance().requestPermission(['ohos.permission.ACCESS_BIOMETRIC'])
            userAuthInstance.start()
          } catch (error) {
            console.error('wsf: auth catch error: ' + JSON.stringify(error));
          }
        })
 
      Button('用户认证 身份认证类型:指纹').width('80%')
        .onClick(async () => {
          const authParam : userAuth.AuthParam = {
            challenge: new Uint8Array([49, 49, 49, 49, 49, 49]),
            authType: [userAuth.UserAuthType.FINGERPRINT],
            authTrustLevel: userAuth.AuthTrustLevel.ATL1,
          };
          const widgetParam :userAuth.WidgetParam = {
            title: '把手指头放上面',
            navigationButtonText: "我是导航按键" // 只能在指纹,人脸类型设置;暂不生效
          };
          try {
            const userAuthInstance = userAuth.getUserAuthInstance(authParam, widgetParam);
            userAuthInstance.on('result', {
              onResult(result) {
                console.log('wsf: userAuthInstance callback result = ' + JSON.stringify(result));
              }
            })
            await PermissionManager.getInstance().requestPermission(['ohos.permission.ACCESS_BIOMETRIC'])
            userAuthInstance.start()
          } catch (error) {
            console.error('wsf: auth catch error: ' + JSON.stringify(error));
          }
        })
 
      Button('用户认证 5s后自动取消').width('80%')
        .onClick(async () => {
          const authParam : userAuth.AuthParam = {
            challenge: new Uint8Array([49, 49, 49, 49, 49, 49]),
            authType: [userAuth.UserAuthType.PIN],
            authTrustLevel: userAuth.AuthTrustLevel.ATL4,
          };
          const widgetParam :userAuth.WidgetParam = {
            title: '请输入锁屏密码',
          };
          try {
            const userAuthInstance = userAuth.getUserAuthInstance(authParam, widgetParam);
            userAuthInstance.on('result', {
              onResult(result) {
                console.log('wsf: userAuthInstance callback result = ' + JSON.stringify(result));
              }
            })
            await PermissionManager.getInstance().requestPermission(['ohos.permission.ACCESS_BIOMETRIC'])
            userAuthInstance.start()
            setTimeout(() => {
              userAuthInstance.cancel()
            }, 5000)
          } catch (error) {
            console.error('wsf: auth catch error: ' + JSON.stringify(error));
          }
        })
    }
  }
}

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进