用户IAM变更说明

cl.useriam.1 AuthEvent接口废弃

访问级别

公开接口

废弃原因

为了统一用户在系统上的身份认证体验,所有应用在进行用户身份认证时,需要使用更换为新方案,使用系统提供的用户身份认证控件。原有方案相关接口废弃。

废弃影响

该变更为兼容性变更。后续应用一样可以继续使用。

API Level

8

废弃发生版本

从OpenHarmony SDK 4.1.6.2开始。

废弃的接口/组件

接口声明 废弃说明 替换接口
interface AuthEvent 不再支持,请使用新接口IAuthCallback interface IAuthCallback
callback(result: EventInfo): void 不再支持,请使用新接口IAuthCallback中的onResult method onResult
field AuthEventKey 不再支持
type EventInfo 不再支持,请使用新接口IAuthCallback中的UserAuthResult interface UserAuthResult
interface AuthResultInfo 不再支持
field result 不再支持,请使用UserAuthResult中的result field result
field token 不再支持,请使用UserAuthResult中的token field token
field remainAttempts 不再支持
field lockoutDuration 不再支持
interface TipInfo 不再支持
field module 不再支持
field tip 不再支持
enum_class FingerprintTips 不再支持
enum_instance FINGERPRINT_AUTH_TIP_TOO_SLOW 不再支持
enum_instance FINGERPRINT_AUTH_TIP_TOO_FAST 不再支持
enum_instance FINGERPRINT_AUTH_TIP_PARTIAL 不再支持
enum_instance FINGERPRINT_AUTH_TIP_INSUFFICIENT 不再支持
enum_instance FINGERPRINT_AUTH_TIP_DIRTY 不再支持
enum_instance FINGERPRINT_AUTH_TIP_GOOD 不再支持
enum_class FaceTips 不再支持
enum_instance FACE_AUTH_TIP_TOO_BRIGHT 不再支持
enum_instance FACE_AUTH_TIP_TOO_DARK 不再支持
enum_instance FACE_AUTH_TIP_TOO_CLOSE 不再支持
enum_instance FACE_AUTH_TIP_TOO_FAR 不再支持
enum_instance FACE_AUTH_TIP_TOO_HIGH 不再支持
enum_instance FACE_AUTH_TIP_TOO_LOW 不再支持
enum_instance FACE_AUTH_TIP_TOO_RIGHT 不再支持
enum_instance FACE_AUTH_TIP_TOO_LEFT 不再支持
enum_instance FACE_AUTH_TIP_TOO_MUCH_MOTION 不再支持
enum_instance FACE_AUTH_TIP_POOR_GAZE 不再支持
enum_instance FACE_AUTH_TIP_NOT_DETECTED 不再支持

适配指导

以AuthEvent接口中的callback回调函数替换为IAuthCallback的onResult回调函数为例,示例代码如下:

import userIAM_userAuth from '@ohos.userIAM.userAuth';

let challenge = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8]);
let authType = userIAM_userAuth.UserAuthType.FACE;
let authTrustLevel = userIAM_userAuth.AuthTrustLevel.ATL1;
try {
  let auth = userIAM_userAuth.getAuthInstance(challenge, authType, authTrustLevel);
  auth.on('result', {
    // API9通过AuthEvent接口中的callback回调函数获取认证结果
    callback: (result: userIAM_userAuth.AuthResultInfo) => {
      console.log('authV9 result ' + result.result);
      console.log('authV9 token ' + result.token);
      console.log('authV9 remainAttempts ' + result.remainAttempts);
      console.log('authV9 lockoutDuration ' + result.lockoutDuration);
    }
  } as userIAM_userAuth.AuthEvent);
  auth.start();
  console.log('authV9 start success');
} catch (error) {
  console.error('authV9 error = ' + error);
  // do error
}
import userAuth from '@ohos.userIAM.userAuth';

const authParam : userAuth.AuthParam = {
  challenge: new Uint8Array([49, 49, 49, 49, 49, 49]),
  authType: [userAuth.UserAuthType.PIN],
  authTrustLevel: userAuth.AuthTrustLevel.ATL1,
};
const widgetParam :userAuth.WidgetParam = {
  title: '请输入密码',
};
try {
  let userAuthInstance = userAuth.getUserAuthInstance(authParam, widgetParam);
  console.log('get userAuth instance success');
  // 需要调用UserAuthInstance的start()接口,启动认证后,才能通过onResult获取到认证结果。
  userAuthInstance.on('result', {
    // API10通过IAuthCallback的onResult回调函数获取认证结果
    onResult (result) {
      console.log('userAuthInstance callback result = ' + JSON.stringify(result));
    }
  });
  console.log('auth on success');
} catch (error) {
  console.error('auth catch error: ' + JSON.stringify(error));
}

更多接口的示例代码可参考用户认证API文档人脸认证API文档