1e41f4b71Sopenharmony_ci# @ohos.userIAM.userAuth (用户认证) 2e41f4b71Sopenharmony_ci 3e41f4b71Sopenharmony_ci提供用户认证能力,可应用于设备解锁、支付、应用登录等身份认证场景。 4e41f4b71Sopenharmony_ci 5e41f4b71Sopenharmony_ci> **说明:** 6e41f4b71Sopenharmony_ci> 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 7e41f4b71Sopenharmony_ci 8e41f4b71Sopenharmony_ci 9e41f4b71Sopenharmony_ci## 导入模块 10e41f4b71Sopenharmony_ci 11e41f4b71Sopenharmony_ci```ts 12e41f4b71Sopenharmony_ciimport { userAuth } from '@kit.UserAuthenticationKit'; 13e41f4b71Sopenharmony_ci``` 14e41f4b71Sopenharmony_ci 15e41f4b71Sopenharmony_ci## 常量 16e41f4b71Sopenharmony_ci 17e41f4b71Sopenharmony_ci表示复用设备解锁结果最大有效时长。 18e41f4b71Sopenharmony_ci 19e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 20e41f4b71Sopenharmony_ci 21e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.UserIAM.UserAuth.Core 22e41f4b71Sopenharmony_ci 23e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 24e41f4b71Sopenharmony_ci| ----------- | ---- | ---------- | 25e41f4b71Sopenharmony_ci| MAX_ALLOWABLE_REUSE_DURATION<sup>12+</sup> | 300000 | 复用设备解锁结果最大有效时长,值为300000毫秒。 | 26e41f4b71Sopenharmony_ci 27e41f4b71Sopenharmony_ci## EnrolledState<sup>12+</sup> 28e41f4b71Sopenharmony_ci 29e41f4b71Sopenharmony_ci表示用户注册凭据的状态。 30e41f4b71Sopenharmony_ci 31e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 32e41f4b71Sopenharmony_ci 33e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.UserIAM.UserAuth.Core 34e41f4b71Sopenharmony_ci 35e41f4b71Sopenharmony_ci| 名称 | 类型 | 可读 | 可写 | 说明 | 36e41f4b71Sopenharmony_ci| ------------ | ---------- | ---- | ---- | -------------------- | 37e41f4b71Sopenharmony_ci| credentialDigest | number | 是 | 否 | 注册的凭据摘要,在凭据增加时随机生成。| 38e41f4b71Sopenharmony_ci| credentialCount | number | 是 | 否 | 注册的凭据数量。 | 39e41f4b71Sopenharmony_ci 40e41f4b71Sopenharmony_ci## ReuseMode<sup>12+</sup> 41e41f4b71Sopenharmony_ci 42e41f4b71Sopenharmony_ci表示复用设备解锁结果的模式。 43e41f4b71Sopenharmony_ci 44e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 45e41f4b71Sopenharmony_ci 46e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.UserIAM.UserAuth.Core 47e41f4b71Sopenharmony_ci 48e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 49e41f4b71Sopenharmony_ci| ----------- | ---- | ---------- | 50e41f4b71Sopenharmony_ci| AUTH_TYPE_RELEVANT | 1 | 与认证类型相关,只有当设备解锁结果在有效时间内,并且设备解锁的认证类型匹配上本次认证指定认证类型之一时,可以复用该结果。 | 51e41f4b71Sopenharmony_ci| AUTH_TYPE_IRRELEVANT | 2 | 与认证类型无关,只要解锁认证结果在有效时间内,就可以重复使用。 | 52e41f4b71Sopenharmony_ci 53e41f4b71Sopenharmony_ci## ReuseUnlockResult<sup>12+</sup> 54e41f4b71Sopenharmony_ci 55e41f4b71Sopenharmony_ci表示复用设备解锁结果。 56e41f4b71Sopenharmony_ci> **说明**: 57e41f4b71Sopenharmony_ci> 58e41f4b71Sopenharmony_ci> 如果锁屏解锁后,在有效时间内凭据发生了变化,锁屏认证结果依然可以复用,认证结果中返回当前实际的EnrolledState。若复用锁屏认证结果 59e41f4b71Sopenharmony_ci> 时,凭据已经被完全删除,则返回的EnrolledState中credentialCount和credentialDigest均为0。 60e41f4b71Sopenharmony_ci 61e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 62e41f4b71Sopenharmony_ci 63e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.UserIAM.UserAuth.Core 64e41f4b71Sopenharmony_ci 65e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 66e41f4b71Sopenharmony_ci| ------------ | ---------- | ---- | -------------------- | 67e41f4b71Sopenharmony_ci| reuseMode | [ReuseMode](#reusemode12) | 是 | 复用设备解锁结果的模式。 | 68e41f4b71Sopenharmony_ci| reuseDuration | number | 是 | 允许复用设备解锁结果的有效时长,有效时长的值应大于0,最大值为[MAX_ALLOWABLE_REUSE_DURATION](#常量)。 | 69e41f4b71Sopenharmony_ci 70e41f4b71Sopenharmony_ci## userAuth.getEnrolledState<sup>12+</sup> 71e41f4b71Sopenharmony_ci 72e41f4b71Sopenharmony_cigetEnrolledState(authType : UserAuthType): EnrolledState 73e41f4b71Sopenharmony_ci 74e41f4b71Sopenharmony_ci查询凭据注册的状态,用于感知用户注册凭据变化。 75e41f4b71Sopenharmony_ci 76e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.ACCESS_BIOMETRIC 77e41f4b71Sopenharmony_ci 78e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 79e41f4b71Sopenharmony_ci 80e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.UserIAM.UserAuth.Core 81e41f4b71Sopenharmony_ci 82e41f4b71Sopenharmony_ci**参数:** 83e41f4b71Sopenharmony_ci 84e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 85e41f4b71Sopenharmony_ci| -------------- | ---------------------------------- | ---- | -------------------------- | 86e41f4b71Sopenharmony_ci| authType | [UserAuthType](#userauthtype8) | 是 | 认证类型。| 87e41f4b71Sopenharmony_ci 88e41f4b71Sopenharmony_ci**返回值:** 89e41f4b71Sopenharmony_ci 90e41f4b71Sopenharmony_ci| 类型 | 说明 | 91e41f4b71Sopenharmony_ci| --------------------- | ------------------------------------------------------------ | 92e41f4b71Sopenharmony_ci| [EnrolledState](#enrolledstate12) | 当查询成功时,返回用户注册凭据的状态。 | 93e41f4b71Sopenharmony_ci 94e41f4b71Sopenharmony_ci**错误码:** 95e41f4b71Sopenharmony_ci 96e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[用户认证错误码](errorcode-useriam.md)。 97e41f4b71Sopenharmony_ci 98e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 99e41f4b71Sopenharmony_ci| -------- | ------- | 100e41f4b71Sopenharmony_ci| 201 | Permission verification failed. | 101e41f4b71Sopenharmony_ci| 401 | Incorrect parameters. Possible causes: 1.Mandatory parameters are left unspecified. | 102e41f4b71Sopenharmony_ci| 12500002 | General operation error. | 103e41f4b71Sopenharmony_ci| 12500005 | The authentication type is not supported. | 104e41f4b71Sopenharmony_ci| 12500010 | The type of credential has not been enrolled. | 105e41f4b71Sopenharmony_ci 106e41f4b71Sopenharmony_ci**示例:** 107e41f4b71Sopenharmony_ci 108e41f4b71Sopenharmony_ci```ts 109e41f4b71Sopenharmony_ciimport { userAuth } from '@kit.UserAuthenticationKit'; 110e41f4b71Sopenharmony_ci 111e41f4b71Sopenharmony_citry { 112e41f4b71Sopenharmony_ci let enrolledState = userAuth.getEnrolledState(userAuth.UserAuthType.FACE); 113e41f4b71Sopenharmony_ci console.info('get current enrolled state success, enrolledState = ' + JSON.stringify(enrolledState)); 114e41f4b71Sopenharmony_ci} catch (error) { 115e41f4b71Sopenharmony_ci console.error('get current enrolled state failed, error = ' + JSON.stringify(error)); 116e41f4b71Sopenharmony_ci} 117e41f4b71Sopenharmony_ci``` 118e41f4b71Sopenharmony_ci 119e41f4b71Sopenharmony_ci## AuthParam<sup>10+</sup> 120e41f4b71Sopenharmony_ci 121e41f4b71Sopenharmony_ci用户认证相关参数。 122e41f4b71Sopenharmony_ci 123e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 124e41f4b71Sopenharmony_ci 125e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.UserIAM.UserAuth.Core 126e41f4b71Sopenharmony_ci 127e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 128e41f4b71Sopenharmony_ci| -------------- | ---------------------------------- | ---- | ------------------------------------------------------------ | 129e41f4b71Sopenharmony_ci| challenge | Uint8Array | 是 | 随机挑战值,用来防重放攻击。最大长度为32字节,可传Uint8Array([])。 | 130e41f4b71Sopenharmony_ci| authType | [UserAuthType](#userauthtype8)[] | 是 | 认证类型列表,用来指定用户认证界面提供的认证方法。 | 131e41f4b71Sopenharmony_ci| authTrustLevel | [AuthTrustLevel](#authtrustlevel8) | 是 | 认证信任等级。 | 132e41f4b71Sopenharmony_ci| reuseUnlockResult<sup>12+</sup> | [ReuseUnlockResult](#reuseunlockresult12) | 否 |表示可以复用设备解锁结果。| 133e41f4b71Sopenharmony_ci 134e41f4b71Sopenharmony_ci## WidgetParam<sup>10+</sup> 135e41f4b71Sopenharmony_ci 136e41f4b71Sopenharmony_ci用户认证界面配置相关参数。 137e41f4b71Sopenharmony_ci 138e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 139e41f4b71Sopenharmony_ci 140e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.UserIAM.UserAuth.Core 141e41f4b71Sopenharmony_ci 142e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 143e41f4b71Sopenharmony_ci| -------------------- | ----------------------------------- | ---- | ------------------------------------------------------------ | 144e41f4b71Sopenharmony_ci| title | string | 是 | 用户认证界面的标题,最大长度为500字符。 | 145e41f4b71Sopenharmony_ci| navigationButtonText | string | 否 | 导航按键的说明文本,最大长度为60字符。仅在单指纹、单人脸场景下支持。 | 146e41f4b71Sopenharmony_ci 147e41f4b71Sopenharmony_ci## UserAuthResult<sup>10+</sup> 148e41f4b71Sopenharmony_ci 149e41f4b71Sopenharmony_ci用户认证结果。当认证结果为成功时,返回认证类型和认证通过的令牌信息。 150e41f4b71Sopenharmony_ci 151e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 152e41f4b71Sopenharmony_ci 153e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.UserIAM.UserAuth.Core 154e41f4b71Sopenharmony_ci 155e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 156e41f4b71Sopenharmony_ci| -------- | ------------------------------ | ---- | ------------------------------------------------------------ | 157e41f4b71Sopenharmony_ci| result | number | 是 | 用户认证结果。若成功返回SUCCESS,若失败返回相应错误码,参见[UserAuthResultCode](#userauthresultcode9)。 | 158e41f4b71Sopenharmony_ci| token | Uint8Array | 否 | 当认证结果为成功时,返回认证通过的令牌信息。 | 159e41f4b71Sopenharmony_ci| authType | [UserAuthType](#userauthtype8) | 否 | 当认证结果为成功时,返回认证类型。 | 160e41f4b71Sopenharmony_ci| enrolledState<sup>12+</sup> | [EnrolledState](#enrolledstate12) | 否 | 当认证结果为成功时,返回注册凭据的状态。 | 161e41f4b71Sopenharmony_ci 162e41f4b71Sopenharmony_ci## IAuthCallback<sup>10+</sup> 163e41f4b71Sopenharmony_ci 164e41f4b71Sopenharmony_ci返回认证结果的回调对象。 165e41f4b71Sopenharmony_ci 166e41f4b71Sopenharmony_ci### onResult<sup>10+</sup> 167e41f4b71Sopenharmony_ci 168e41f4b71Sopenharmony_cionResult(result: UserAuthResult): void 169e41f4b71Sopenharmony_ci 170e41f4b71Sopenharmony_ci回调函数,返回认证结果。如果认证成功,可以通过UserAuthResult获取到认证通过的令牌信息。 171e41f4b71Sopenharmony_ci 172e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 173e41f4b71Sopenharmony_ci 174e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.UserIAM.UserAuth.Core 175e41f4b71Sopenharmony_ci 176e41f4b71Sopenharmony_ci**参数:** 177e41f4b71Sopenharmony_ci 178e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 179e41f4b71Sopenharmony_ci| ------ | ----------------------------------- | ---- | ---------- | 180e41f4b71Sopenharmony_ci| result | [UserAuthResult](#userauthresult10) | 是 | 认证结果。 | 181e41f4b71Sopenharmony_ci 182e41f4b71Sopenharmony_ci**示例1:** 183e41f4b71Sopenharmony_ci 184e41f4b71Sopenharmony_ci```ts 185e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 186e41f4b71Sopenharmony_ciimport { cryptoFramework } from '@kit.CryptoArchitectureKit'; 187e41f4b71Sopenharmony_ciimport { userAuth } from '@kit.UserAuthenticationKit'; 188e41f4b71Sopenharmony_ci 189e41f4b71Sopenharmony_citry { 190e41f4b71Sopenharmony_ci const rand = cryptoFramework.createRandom(); 191e41f4b71Sopenharmony_ci const len: number = 16; 192e41f4b71Sopenharmony_ci const randData: Uint8Array = rand?.generateRandomSync(len)?.data; 193e41f4b71Sopenharmony_ci const authParam: userAuth.AuthParam = { 194e41f4b71Sopenharmony_ci challenge: randData, 195e41f4b71Sopenharmony_ci authType: [userAuth.UserAuthType.PIN], 196e41f4b71Sopenharmony_ci authTrustLevel: userAuth.AuthTrustLevel.ATL3, 197e41f4b71Sopenharmony_ci }; 198e41f4b71Sopenharmony_ci const widgetParam: userAuth.WidgetParam = { 199e41f4b71Sopenharmony_ci title: '请输入密码', 200e41f4b71Sopenharmony_ci }; 201e41f4b71Sopenharmony_ci 202e41f4b71Sopenharmony_ci const userAuthInstance = userAuth.getUserAuthInstance(authParam, widgetParam); 203e41f4b71Sopenharmony_ci console.log('get userAuth instance success'); 204e41f4b71Sopenharmony_ci // 需要调用UserAuthInstance的start()接口,启动认证后,才能通过onResult获取到认证结果。 205e41f4b71Sopenharmony_ci userAuthInstance.on('result', { 206e41f4b71Sopenharmony_ci onResult (result) { 207e41f4b71Sopenharmony_ci console.log(`userAuthInstance callback result = ${JSON.stringify(result)}`); 208e41f4b71Sopenharmony_ci } 209e41f4b71Sopenharmony_ci }); 210e41f4b71Sopenharmony_ci console.log('auth on success'); 211e41f4b71Sopenharmony_ci} catch (error) { 212e41f4b71Sopenharmony_ci const err: BusinessError = error as BusinessError; 213e41f4b71Sopenharmony_ci console.error(`auth catch error. Code is ${err?.code}, message is ${err?.message}`); 214e41f4b71Sopenharmony_ci} 215e41f4b71Sopenharmony_ci``` 216e41f4b71Sopenharmony_ci 217e41f4b71Sopenharmony_ci**示例2:** 218e41f4b71Sopenharmony_ci 219e41f4b71Sopenharmony_ci```ts 220e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 221e41f4b71Sopenharmony_ciimport { cryptoFramework } from '@kit.CryptoArchitectureKit'; 222e41f4b71Sopenharmony_ciimport { userAuth } from '@kit.UserAuthenticationKit'; 223e41f4b71Sopenharmony_ci 224e41f4b71Sopenharmony_cilet reuseUnlockResult: userAuth.ReuseUnlockResult = { 225e41f4b71Sopenharmony_ci reuseMode: userAuth.ReuseMode.AUTH_TYPE_RELEVANT, 226e41f4b71Sopenharmony_ci reuseDuration: userAuth.MAX_ALLOWABLE_REUSE_DURATION, 227e41f4b71Sopenharmony_ci} 228e41f4b71Sopenharmony_citry { 229e41f4b71Sopenharmony_ci const rand = cryptoFramework.createRandom(); 230e41f4b71Sopenharmony_ci const len: number = 16; 231e41f4b71Sopenharmony_ci const randData: Uint8Array = rand?.generateRandomSync(len)?.data; 232e41f4b71Sopenharmony_ci const authParam: userAuth.AuthParam = { 233e41f4b71Sopenharmony_ci challenge: randData, 234e41f4b71Sopenharmony_ci authType: [userAuth.UserAuthType.PIN], 235e41f4b71Sopenharmony_ci authTrustLevel: userAuth.AuthTrustLevel.ATL3, 236e41f4b71Sopenharmony_ci reuseUnlockResult: reuseUnlockResult, 237e41f4b71Sopenharmony_ci }; 238e41f4b71Sopenharmony_ci const widgetParam: userAuth.WidgetParam = { 239e41f4b71Sopenharmony_ci title: '请输入密码', 240e41f4b71Sopenharmony_ci }; 241e41f4b71Sopenharmony_ci const userAuthInstance = userAuth.getUserAuthInstance(authParam, widgetParam); 242e41f4b71Sopenharmony_ci console.log('get userAuth instance success'); 243e41f4b71Sopenharmony_ci // 需要调用UserAuthInstance的start()接口,启动认证后,才能通过onResult获取到认证结果。 244e41f4b71Sopenharmony_ci userAuthInstance.on('result', { 245e41f4b71Sopenharmony_ci onResult (result) { 246e41f4b71Sopenharmony_ci console.log(`userAuthInstance callback result = ${JSON.stringify(result)}`); 247e41f4b71Sopenharmony_ci } 248e41f4b71Sopenharmony_ci }); 249e41f4b71Sopenharmony_ci console.log('auth on success'); 250e41f4b71Sopenharmony_ci} catch (error) { 251e41f4b71Sopenharmony_ci const err: BusinessError = error as BusinessError; 252e41f4b71Sopenharmony_ci console.error(`auth catch error. Code is ${err?.code}, message is ${err?.message}`); 253e41f4b71Sopenharmony_ci} 254e41f4b71Sopenharmony_ci``` 255e41f4b71Sopenharmony_ci 256e41f4b71Sopenharmony_ci## UserAuthInstance<sup>10+</sup> 257e41f4b71Sopenharmony_ci 258e41f4b71Sopenharmony_ci用于执行用户身份认证,并支持使用统一用户身份认证控件。 259e41f4b71Sopenharmony_ci使用以下接口前,都需要先通过[getUserAuthInstance](#userauthgetuserauthinstance10)方法获取UserAuthInstance对象。 260e41f4b71Sopenharmony_ci 261e41f4b71Sopenharmony_ci### on<sup>10+</sup> 262e41f4b71Sopenharmony_ci 263e41f4b71Sopenharmony_cion(type: 'result', callback: IAuthCallback): void 264e41f4b71Sopenharmony_ci 265e41f4b71Sopenharmony_ci订阅用户身份认证结果。 266e41f4b71Sopenharmony_ci 267e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 268e41f4b71Sopenharmony_ci 269e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.UserIAM.UserAuth.Core 270e41f4b71Sopenharmony_ci 271e41f4b71Sopenharmony_ci**参数:** 272e41f4b71Sopenharmony_ci 273e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 274e41f4b71Sopenharmony_ci| -------- | --------------------------------- | ---- | ------------------------------------------ | 275e41f4b71Sopenharmony_ci| type | 'result' | 是 | 订阅事件类型,表明该事件用来返回认证结果。 | 276e41f4b71Sopenharmony_ci| callback | [IAuthCallback](#iauthcallback10) | 是 | 认证接口的回调函数,用于返回认证结果。 | 277e41f4b71Sopenharmony_ci 278e41f4b71Sopenharmony_ci**错误码:** 279e41f4b71Sopenharmony_ci 280e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[用户认证错误码](errorcode-useriam.md)。 281e41f4b71Sopenharmony_ci 282e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 283e41f4b71Sopenharmony_ci| -------- | ------------------------ | 284e41f4b71Sopenharmony_ci| 401 | Incorrect parameters. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed. | 285e41f4b71Sopenharmony_ci| 12500002 | General operation error. | 286e41f4b71Sopenharmony_ci 287e41f4b71Sopenharmony_ci**示例:** 288e41f4b71Sopenharmony_ci 289e41f4b71Sopenharmony_ci```ts 290e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 291e41f4b71Sopenharmony_ciimport { cryptoFramework } from '@kit.CryptoArchitectureKit'; 292e41f4b71Sopenharmony_ciimport { userAuth } from '@kit.UserAuthenticationKit'; 293e41f4b71Sopenharmony_ci 294e41f4b71Sopenharmony_citry { 295e41f4b71Sopenharmony_ci const rand = cryptoFramework.createRandom(); 296e41f4b71Sopenharmony_ci const len: number = 16; 297e41f4b71Sopenharmony_ci const randData: Uint8Array = rand?.generateRandomSync(len)?.data; 298e41f4b71Sopenharmony_ci const authParam: userAuth.AuthParam = { 299e41f4b71Sopenharmony_ci challenge: randData, 300e41f4b71Sopenharmony_ci authType: [userAuth.UserAuthType.PIN], 301e41f4b71Sopenharmony_ci authTrustLevel: userAuth.AuthTrustLevel.ATL3, 302e41f4b71Sopenharmony_ci }; 303e41f4b71Sopenharmony_ci const widgetParam: userAuth.WidgetParam = { 304e41f4b71Sopenharmony_ci title: '请输入密码', 305e41f4b71Sopenharmony_ci }; 306e41f4b71Sopenharmony_ci const userAuthInstance = userAuth.getUserAuthInstance(authParam, widgetParam); 307e41f4b71Sopenharmony_ci console.log('get userAuth instance success'); 308e41f4b71Sopenharmony_ci // 需要调用UserAuthInstance的start()接口,启动认证后,才能通过onResult获取到认证结果。 309e41f4b71Sopenharmony_ci userAuthInstance.on('result', { 310e41f4b71Sopenharmony_ci onResult (result) { 311e41f4b71Sopenharmony_ci console.log(`userAuthInstance callback result = ${JSON.stringify(result)}`); 312e41f4b71Sopenharmony_ci } 313e41f4b71Sopenharmony_ci }); 314e41f4b71Sopenharmony_ci console.log('auth on success'); 315e41f4b71Sopenharmony_ci} catch (error) { 316e41f4b71Sopenharmony_ci const err: BusinessError = error as BusinessError; 317e41f4b71Sopenharmony_ci console.error(`auth catch error. Code is ${err?.code}, message is ${err?.message}`); 318e41f4b71Sopenharmony_ci} 319e41f4b71Sopenharmony_ci``` 320e41f4b71Sopenharmony_ci 321e41f4b71Sopenharmony_ci### off<sup>10+</sup> 322e41f4b71Sopenharmony_ci 323e41f4b71Sopenharmony_cioff(type: 'result', callback?: IAuthCallback): void 324e41f4b71Sopenharmony_ci 325e41f4b71Sopenharmony_ci取消订阅用户身份认证结果。 326e41f4b71Sopenharmony_ci 327e41f4b71Sopenharmony_ci> **说明**: 328e41f4b71Sopenharmony_ci> 329e41f4b71Sopenharmony_ci> 需要使用已经成功订阅事件的[UserAuthInstance](#userauthinstance10)对象调用该接口进行取消订阅。 330e41f4b71Sopenharmony_ci 331e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 332e41f4b71Sopenharmony_ci 333e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.UserIAM.UserAuth.Core 334e41f4b71Sopenharmony_ci 335e41f4b71Sopenharmony_ci**参数:** 336e41f4b71Sopenharmony_ci 337e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 338e41f4b71Sopenharmony_ci| -------- | --------------------------------- | ---- | ------------------------------------------ | 339e41f4b71Sopenharmony_ci| type | 'result' | 是 | 订阅事件类型,表明该事件用来返回认证结果。 | 340e41f4b71Sopenharmony_ci| callback | [IAuthCallback](#iauthcallback10) | 否 | 认证接口的回调函数,用于返回认证结果。 | 341e41f4b71Sopenharmony_ci 342e41f4b71Sopenharmony_ci**错误码:** 343e41f4b71Sopenharmony_ci 344e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[用户认证错误码](errorcode-useriam.md)。 345e41f4b71Sopenharmony_ci 346e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 347e41f4b71Sopenharmony_ci| -------- | ------------------------ | 348e41f4b71Sopenharmony_ci| 401 | Incorrect parameters. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed. | 349e41f4b71Sopenharmony_ci| 12500002 | General operation error. | 350e41f4b71Sopenharmony_ci 351e41f4b71Sopenharmony_ci**示例:** 352e41f4b71Sopenharmony_ci 353e41f4b71Sopenharmony_ci```ts 354e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 355e41f4b71Sopenharmony_ciimport { cryptoFramework } from '@kit.CryptoArchitectureKit'; 356e41f4b71Sopenharmony_ciimport { userAuth } from '@kit.UserAuthenticationKit'; 357e41f4b71Sopenharmony_ci 358e41f4b71Sopenharmony_citry { 359e41f4b71Sopenharmony_ci const rand = cryptoFramework.createRandom(); 360e41f4b71Sopenharmony_ci const len: number = 16; 361e41f4b71Sopenharmony_ci const randData: Uint8Array = rand?.generateRandomSync(len)?.data; 362e41f4b71Sopenharmony_ci const authParam: userAuth.AuthParam = { 363e41f4b71Sopenharmony_ci challenge: randData, 364e41f4b71Sopenharmony_ci authType: [userAuth.UserAuthType.PIN], 365e41f4b71Sopenharmony_ci authTrustLevel: userAuth.AuthTrustLevel.ATL3, 366e41f4b71Sopenharmony_ci }; 367e41f4b71Sopenharmony_ci const widgetParam: userAuth.WidgetParam = { 368e41f4b71Sopenharmony_ci title: '请输入密码', 369e41f4b71Sopenharmony_ci }; 370e41f4b71Sopenharmony_ci const userAuthInstance = userAuth.getUserAuthInstance(authParam, widgetParam); 371e41f4b71Sopenharmony_ci console.log('get userAuth instance success'); 372e41f4b71Sopenharmony_ci userAuthInstance.off('result', { 373e41f4b71Sopenharmony_ci onResult (result) { 374e41f4b71Sopenharmony_ci console.log(`auth off result = ${JSON.stringify(result)}`); 375e41f4b71Sopenharmony_ci } 376e41f4b71Sopenharmony_ci }); 377e41f4b71Sopenharmony_ci console.log('auth off success'); 378e41f4b71Sopenharmony_ci} catch (error) { 379e41f4b71Sopenharmony_ci const err: BusinessError = error as BusinessError; 380e41f4b71Sopenharmony_ci console.error(`auth catch error. Code is ${err?.code}, message is ${err?.message}`); 381e41f4b71Sopenharmony_ci} 382e41f4b71Sopenharmony_ci``` 383e41f4b71Sopenharmony_ci 384e41f4b71Sopenharmony_ci### start<sup>10+</sup> 385e41f4b71Sopenharmony_ci 386e41f4b71Sopenharmony_cistart(): void 387e41f4b71Sopenharmony_ci 388e41f4b71Sopenharmony_ci开始认证。 389e41f4b71Sopenharmony_ci 390e41f4b71Sopenharmony_ci> **说明:** 391e41f4b71Sopenharmony_ci> 每个UserAuthInstance只能进行一次认证,若需要再次进行认证则需重新获取UserAuthInstance。 392e41f4b71Sopenharmony_ci 393e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.ACCESS_BIOMETRIC 394e41f4b71Sopenharmony_ci 395e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 396e41f4b71Sopenharmony_ci 397e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.UserIAM.UserAuth.Core 398e41f4b71Sopenharmony_ci 399e41f4b71Sopenharmony_ci**错误码:** 400e41f4b71Sopenharmony_ci 401e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[用户认证错误码](errorcode-useriam.md)。 402e41f4b71Sopenharmony_ci 403e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 404e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------ | 405e41f4b71Sopenharmony_ci| 201 | Permission verification failed. | 406e41f4b71Sopenharmony_ci| 401 | Incorrect parameters. Possible causes: 1.Incorrect parameter types. | 407e41f4b71Sopenharmony_ci| 12500001 | Authentication failed. | 408e41f4b71Sopenharmony_ci| 12500002 | General operation error. | 409e41f4b71Sopenharmony_ci| 12500003 | Authentication canceled. | 410e41f4b71Sopenharmony_ci| 12500004 | Authentication timeout. | 411e41f4b71Sopenharmony_ci| 12500005 | The authentication type is not supported. | 412e41f4b71Sopenharmony_ci| 12500006 | The authentication trust level is not supported. | 413e41f4b71Sopenharmony_ci| 12500007 | Authentication service is busy. | 414e41f4b71Sopenharmony_ci| 12500009 | Authentication is locked out. | 415e41f4b71Sopenharmony_ci| 12500010 | The type of credential has not been enrolled. | 416e41f4b71Sopenharmony_ci| 12500011 | Switched to the custom authentication process. | 417e41f4b71Sopenharmony_ci| 12500013 | Operation failed because of PIN expired. | 418e41f4b71Sopenharmony_ci 419e41f4b71Sopenharmony_ci**示例:** 420e41f4b71Sopenharmony_ci 421e41f4b71Sopenharmony_ci```ts 422e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 423e41f4b71Sopenharmony_ciimport { cryptoFramework } from '@kit.CryptoArchitectureKit'; 424e41f4b71Sopenharmony_ciimport { userAuth } from '@kit.UserAuthenticationKit'; 425e41f4b71Sopenharmony_ci 426e41f4b71Sopenharmony_citry { 427e41f4b71Sopenharmony_ci const rand = cryptoFramework.createRandom(); 428e41f4b71Sopenharmony_ci const len: number = 16; 429e41f4b71Sopenharmony_ci const randData: Uint8Array = rand?.generateRandomSync(len)?.data; 430e41f4b71Sopenharmony_ci const authParam: userAuth.AuthParam = { 431e41f4b71Sopenharmony_ci challenge: randData, 432e41f4b71Sopenharmony_ci authType: [userAuth.UserAuthType.PIN], 433e41f4b71Sopenharmony_ci authTrustLevel: userAuth.AuthTrustLevel.ATL3, 434e41f4b71Sopenharmony_ci }; 435e41f4b71Sopenharmony_ci const widgetParam: userAuth.WidgetParam = { 436e41f4b71Sopenharmony_ci title: '请输入密码', 437e41f4b71Sopenharmony_ci }; 438e41f4b71Sopenharmony_ci const userAuthInstance = userAuth.getUserAuthInstance(authParam, widgetParam); 439e41f4b71Sopenharmony_ci console.log('get userAuth instance success'); 440e41f4b71Sopenharmony_ci userAuthInstance.start(); 441e41f4b71Sopenharmony_ci console.log('auth start success'); 442e41f4b71Sopenharmony_ci} catch (error) { 443e41f4b71Sopenharmony_ci const err: BusinessError = error as BusinessError; 444e41f4b71Sopenharmony_ci console.error(`auth catch error. Code is ${err?.code}, message is ${err?.message}`); 445e41f4b71Sopenharmony_ci} 446e41f4b71Sopenharmony_ci``` 447e41f4b71Sopenharmony_ci 448e41f4b71Sopenharmony_ci### cancel<sup>10+</sup> 449e41f4b71Sopenharmony_ci 450e41f4b71Sopenharmony_cicancel(): void 451e41f4b71Sopenharmony_ci 452e41f4b71Sopenharmony_ci取消认证。 453e41f4b71Sopenharmony_ci 454e41f4b71Sopenharmony_ci> **说明**: 455e41f4b71Sopenharmony_ci> 456e41f4b71Sopenharmony_ci> 此时UserAuthInstance需要是正在进行认证的对象。 457e41f4b71Sopenharmony_ci 458e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.ACCESS_BIOMETRIC 459e41f4b71Sopenharmony_ci 460e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 461e41f4b71Sopenharmony_ci 462e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.UserIAM.UserAuth.Core 463e41f4b71Sopenharmony_ci 464e41f4b71Sopenharmony_ci**错误码:** 465e41f4b71Sopenharmony_ci 466e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 467e41f4b71Sopenharmony_ci| -------- | ------------------------------- | 468e41f4b71Sopenharmony_ci| 201 | Permission verification failed. | 469e41f4b71Sopenharmony_ci| 401 | Incorrect parameters. Possible causes: 1.Incorrect parameter types. | 470e41f4b71Sopenharmony_ci| 12500002 | General operation error. | 471e41f4b71Sopenharmony_ci 472e41f4b71Sopenharmony_ci**示例:** 473e41f4b71Sopenharmony_ci 474e41f4b71Sopenharmony_ci```ts 475e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 476e41f4b71Sopenharmony_ciimport { cryptoFramework } from '@kit.CryptoArchitectureKit'; 477e41f4b71Sopenharmony_ciimport { userAuth } from '@kit.UserAuthenticationKit'; 478e41f4b71Sopenharmony_ci 479e41f4b71Sopenharmony_citry { 480e41f4b71Sopenharmony_ci const rand = cryptoFramework.createRandom(); 481e41f4b71Sopenharmony_ci const len: number = 16; 482e41f4b71Sopenharmony_ci const randData: Uint8Array = rand?.generateRandomSync(len)?.data; 483e41f4b71Sopenharmony_ci const authParam : userAuth.AuthParam = { 484e41f4b71Sopenharmony_ci challenge: randData, 485e41f4b71Sopenharmony_ci authType: [userAuth.UserAuthType.PIN], 486e41f4b71Sopenharmony_ci authTrustLevel: userAuth.AuthTrustLevel.ATL3, 487e41f4b71Sopenharmony_ci }; 488e41f4b71Sopenharmony_ci const widgetParam: userAuth.WidgetParam = { 489e41f4b71Sopenharmony_ci title: '请输入密码', 490e41f4b71Sopenharmony_ci }; 491e41f4b71Sopenharmony_ci const userAuthInstance = userAuth.getUserAuthInstance(authParam, widgetParam); 492e41f4b71Sopenharmony_ci console.log('get userAuth instance success'); 493e41f4b71Sopenharmony_ci // 需要调用UserAuthInstance的start()接口,启动认证后,才能调用cancel()接口。 494e41f4b71Sopenharmony_ci userAuthInstance.cancel(); 495e41f4b71Sopenharmony_ci console.log('auth cancel success'); 496e41f4b71Sopenharmony_ci} catch (error) { 497e41f4b71Sopenharmony_ci const err: BusinessError = error as BusinessError; 498e41f4b71Sopenharmony_ci console.error(`auth catch error. Code is ${err?.code}, message is ${err?.message}`); 499e41f4b71Sopenharmony_ci} 500e41f4b71Sopenharmony_ci``` 501e41f4b71Sopenharmony_ci 502e41f4b71Sopenharmony_ci## userAuth.getUserAuthInstance<sup>10+</sup> 503e41f4b71Sopenharmony_ci 504e41f4b71Sopenharmony_cigetUserAuthInstance(authParam: AuthParam, widgetParam: WidgetParam): UserAuthInstance 505e41f4b71Sopenharmony_ci 506e41f4b71Sopenharmony_ci获取[UserAuthInstance](#userauthinstance10)对象,用于执行用户身份认证,并支持使用统一用户身份认证控件。 507e41f4b71Sopenharmony_ci 508e41f4b71Sopenharmony_ci> **说明:** 509e41f4b71Sopenharmony_ci> 每个UserAuthInstance只能进行一次认证,若需要再次进行认证则需重新获取UserAuthInstance。 510e41f4b71Sopenharmony_ci 511e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 512e41f4b71Sopenharmony_ci 513e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.UserIAM.UserAuth.Core 514e41f4b71Sopenharmony_ci 515e41f4b71Sopenharmony_ci**参数:** 516e41f4b71Sopenharmony_ci 517e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 518e41f4b71Sopenharmony_ci| ----------- | ----------------------------- | ---- | -------------------------- | 519e41f4b71Sopenharmony_ci| authParam | [AuthParam](#authparam10) | 是 | 用户认证相关参数。 | 520e41f4b71Sopenharmony_ci| widgetParam | [WidgetParam](#widgetparam10) | 是 | 用户认证界面配置相关参数。 | 521e41f4b71Sopenharmony_ci 522e41f4b71Sopenharmony_ci**返回值:** 523e41f4b71Sopenharmony_ci 524e41f4b71Sopenharmony_ci| 类型 | 说明 | 525e41f4b71Sopenharmony_ci| --------------------------------------- | -------------------------- | 526e41f4b71Sopenharmony_ci| [UserAuthInstance](#userauthinstance10) | 支持用户界面的认证器对象。 | 527e41f4b71Sopenharmony_ci 528e41f4b71Sopenharmony_ci**错误码:** 529e41f4b71Sopenharmony_ci 530e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[用户认证错误码](errorcode-useriam.md)。 531e41f4b71Sopenharmony_ci 532e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 533e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------ | 534e41f4b71Sopenharmony_ci| 401 | Incorrect parameters. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed. | 535e41f4b71Sopenharmony_ci| 12500002 | General operation error. | 536e41f4b71Sopenharmony_ci| 12500005 | The authentication type is not supported. | 537e41f4b71Sopenharmony_ci| 12500006 | The authentication trust level is not supported. | 538e41f4b71Sopenharmony_ci 539e41f4b71Sopenharmony_ci**示例:** 540e41f4b71Sopenharmony_ci 541e41f4b71Sopenharmony_ci```ts 542e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 543e41f4b71Sopenharmony_ciimport { cryptoFramework } from '@kit.CryptoArchitectureKit'; 544e41f4b71Sopenharmony_ciimport { userAuth } from '@kit.UserAuthenticationKit'; 545e41f4b71Sopenharmony_ci 546e41f4b71Sopenharmony_citry { 547e41f4b71Sopenharmony_ci const rand = cryptoFramework.createRandom(); 548e41f4b71Sopenharmony_ci const len: number = 16; 549e41f4b71Sopenharmony_ci const randData: Uint8Array = rand?.generateRandomSync(len)?.data; 550e41f4b71Sopenharmony_ci const authParam: userAuth.AuthParam = { 551e41f4b71Sopenharmony_ci challenge: randData, 552e41f4b71Sopenharmony_ci authType: [userAuth.UserAuthType.PIN], 553e41f4b71Sopenharmony_ci authTrustLevel: userAuth.AuthTrustLevel.ATL3, 554e41f4b71Sopenharmony_ci }; 555e41f4b71Sopenharmony_ci const widgetParam: userAuth.WidgetParam = { 556e41f4b71Sopenharmony_ci title: '请输入密码', 557e41f4b71Sopenharmony_ci }; 558e41f4b71Sopenharmony_ci let userAuthInstance = userAuth.getUserAuthInstance(authParam, widgetParam); 559e41f4b71Sopenharmony_ci console.log('get userAuth instance success'); 560e41f4b71Sopenharmony_ci} catch (error) { 561e41f4b71Sopenharmony_ci const err: BusinessError = error as BusinessError; 562e41f4b71Sopenharmony_ci console.error(`auth catch error. Code is ${err?.code}, message is ${err?.message}`); 563e41f4b71Sopenharmony_ci} 564e41f4b71Sopenharmony_ci``` 565e41f4b71Sopenharmony_ci 566e41f4b71Sopenharmony_ci## AuthResultInfo<sup>(deprecated)</sup> 567e41f4b71Sopenharmony_ci 568e41f4b71Sopenharmony_ci表示认证结果信息。 569e41f4b71Sopenharmony_ci 570e41f4b71Sopenharmony_ci> **说明:** 571e41f4b71Sopenharmony_ci> 从 API version 9 开始支持,从 API version 11 开始废弃。 572e41f4b71Sopenharmony_ci 573e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.UserIAM.UserAuth.Core 574e41f4b71Sopenharmony_ci 575e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 576e41f4b71Sopenharmony_ci| ------------ | ---------- | ---- | -------------------- | 577e41f4b71Sopenharmony_ci| result | number | 是 | 认证结果。 | 578e41f4b71Sopenharmony_ci| token | Uint8Array | 否 | 用户身份认证通过的凭证。 | 579e41f4b71Sopenharmony_ci| remainAttempts | number | 否 | 剩余的认证尝试次数。 | 580e41f4b71Sopenharmony_ci| lockoutDuration | number | 否 | 认证操作的锁定时长,时间单位为毫秒ms。 | 581e41f4b71Sopenharmony_ci 582e41f4b71Sopenharmony_ci## TipInfo<sup>(deprecated)</sup> 583e41f4b71Sopenharmony_ci 584e41f4b71Sopenharmony_ci表示认证过程中的提示信息。 585e41f4b71Sopenharmony_ci 586e41f4b71Sopenharmony_ci> **说明:** 587e41f4b71Sopenharmony_ci> 从 API version 9 开始支持,从 API version 11 开始废弃。 588e41f4b71Sopenharmony_ci 589e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.UserIAM.UserAuth.Core。 590e41f4b71Sopenharmony_ci 591e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 592e41f4b71Sopenharmony_ci| ------------ | ---------- | ---- | -------------------- | 593e41f4b71Sopenharmony_ci| module | number | 是 | 发送提示信息的模块标识。 | 594e41f4b71Sopenharmony_ci| tip | number | 是 | 认证过程提示信息。 | 595e41f4b71Sopenharmony_ci 596e41f4b71Sopenharmony_ci## EventInfo<sup>(deprecated)</sup> 597e41f4b71Sopenharmony_ci 598e41f4b71Sopenharmony_citype EventInfo = AuthResultInfo | TipInfo 599e41f4b71Sopenharmony_ci 600e41f4b71Sopenharmony_ci表示认证过程中事件信息的类型。 601e41f4b71Sopenharmony_ci 602e41f4b71Sopenharmony_ci该类型为下表类型中的联合类型。 603e41f4b71Sopenharmony_ci 604e41f4b71Sopenharmony_ci> **说明:** 605e41f4b71Sopenharmony_ci> 从 API version 9 开始支持,从 API version 11 开始废弃,请使用[UserAuthResult](#userauthresult10)替代。 606e41f4b71Sopenharmony_ci 607e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.UserIAM.UserAuth.Core。 608e41f4b71Sopenharmony_ci 609e41f4b71Sopenharmony_ci| 类型 | 说明 | 610e41f4b71Sopenharmony_ci| --------- | ----------------------- | 611e41f4b71Sopenharmony_ci| [AuthResultInfo](#authresultinfodeprecated) | 获取到的认证结果信息。 | 612e41f4b71Sopenharmony_ci| [TipInfo](#tipinfodeprecated) | 认证过程中的提示信息。 | 613e41f4b71Sopenharmony_ci 614e41f4b71Sopenharmony_ci## AuthEventKey<sup>(deprecated)</sup> 615e41f4b71Sopenharmony_ci 616e41f4b71Sopenharmony_citype AuthEventKey = 'result' | 'tip' 617e41f4b71Sopenharmony_ci 618e41f4b71Sopenharmony_ci表示认证事件类型的关键字,作为[on](#ondeprecated)接口的的参数。 619e41f4b71Sopenharmony_ci 620e41f4b71Sopenharmony_ci该类型为下表类型取值中的联合类型。 621e41f4b71Sopenharmony_ci 622e41f4b71Sopenharmony_ci> **说明:** 623e41f4b71Sopenharmony_ci> 从 API version 9 开始支持,从 API version 11 开始废弃。 624e41f4b71Sopenharmony_ci 625e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.UserIAM.UserAuth.Core。 626e41f4b71Sopenharmony_ci 627e41f4b71Sopenharmony_ci| 类型 | 说明 | 628e41f4b71Sopenharmony_ci| ---------- | ----------------------- | 629e41f4b71Sopenharmony_ci| 'result' | [on](#ondeprecated)接口第一个参数为"result"时,[callback](#callbackdeprecated)回调返回认证的结果信息。 | 630e41f4b71Sopenharmony_ci| 'tip' | [on](#ondeprecated)接口第一个参数为"tip"时,[callback](#callbackdeprecated)回调返回认证操作中的提示信息。 | 631e41f4b71Sopenharmony_ci 632e41f4b71Sopenharmony_ci## AuthEvent<sup>(deprecated)</sup> 633e41f4b71Sopenharmony_ci 634e41f4b71Sopenharmony_ci认证接口的异步回调对象。 635e41f4b71Sopenharmony_ci 636e41f4b71Sopenharmony_ci> **说明:** 637e41f4b71Sopenharmony_ci> 从 API version 9 开始支持,从 API version 11 开始废弃,请使用[IAuthCallback](#iauthcallback10)替代。 638e41f4b71Sopenharmony_ci 639e41f4b71Sopenharmony_ci### callback<sup>(deprecated)</sup> 640e41f4b71Sopenharmony_ci 641e41f4b71Sopenharmony_cicallback(result : EventInfo) : void 642e41f4b71Sopenharmony_ci 643e41f4b71Sopenharmony_ci通过该回调获取认证结果信息或认证过程中的提示信息。 644e41f4b71Sopenharmony_ci 645e41f4b71Sopenharmony_ci> **说明:** 646e41f4b71Sopenharmony_ci> 从 API version 9 开始支持,从 API version 11 开始废弃,请使用[onResult](#onresult10)替代。 647e41f4b71Sopenharmony_ci 648e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.UserIAM.UserAuth.Core 649e41f4b71Sopenharmony_ci 650e41f4b71Sopenharmony_ci**参数:** 651e41f4b71Sopenharmony_ci 652e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 653e41f4b71Sopenharmony_ci| --------- | -------------------------- | ---- | ------------------------------ | 654e41f4b71Sopenharmony_ci| result | [EventInfo](#eventinfodeprecated) | 是 | 返回的认证结果信息或提示信息。 | 655e41f4b71Sopenharmony_ci 656e41f4b71Sopenharmony_ci**示例:** 657e41f4b71Sopenharmony_ci 658e41f4b71Sopenharmony_ci```ts 659e41f4b71Sopenharmony_ciimport { userAuth } from '@kit.UserAuthenticationKit'; 660e41f4b71Sopenharmony_ci 661e41f4b71Sopenharmony_cilet challenge = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8]); 662e41f4b71Sopenharmony_cilet authType = userAuth.UserAuthType.FACE; 663e41f4b71Sopenharmony_cilet authTrustLevel = userAuth.AuthTrustLevel.ATL1; 664e41f4b71Sopenharmony_ci// 通过callback获取认证结果 665e41f4b71Sopenharmony_citry { 666e41f4b71Sopenharmony_ci let auth = userAuth.getAuthInstance(challenge, authType, authTrustLevel); 667e41f4b71Sopenharmony_ci auth.on('result', { 668e41f4b71Sopenharmony_ci callback: (result: userAuth.AuthResultInfo) => { 669e41f4b71Sopenharmony_ci console.log('authV9 result ' + result.result); 670e41f4b71Sopenharmony_ci console.log('authV9 token ' + result.token); 671e41f4b71Sopenharmony_ci console.log('authV9 remainAttempts ' + result.remainAttempts); 672e41f4b71Sopenharmony_ci console.log('authV9 lockoutDuration ' + result.lockoutDuration); 673e41f4b71Sopenharmony_ci } 674e41f4b71Sopenharmony_ci } as userAuth.AuthEvent); 675e41f4b71Sopenharmony_ci auth.start(); 676e41f4b71Sopenharmony_ci console.log('authV9 start success'); 677e41f4b71Sopenharmony_ci} catch (error) { 678e41f4b71Sopenharmony_ci console.error('authV9 error = ' + error); 679e41f4b71Sopenharmony_ci // do error 680e41f4b71Sopenharmony_ci} 681e41f4b71Sopenharmony_ci// 通过callback获取认证过程中的提示信息 682e41f4b71Sopenharmony_citry { 683e41f4b71Sopenharmony_ci let auth = userAuth.getAuthInstance(challenge, authType, authTrustLevel); 684e41f4b71Sopenharmony_ci auth.on('tip', { 685e41f4b71Sopenharmony_ci callback : (result : userAuth.TipInfo) => { 686e41f4b71Sopenharmony_ci switch (result.tip) { 687e41f4b71Sopenharmony_ci case userAuth.FaceTips.FACE_AUTH_TIP_TOO_BRIGHT: 688e41f4b71Sopenharmony_ci // do something; 689e41f4b71Sopenharmony_ci case userAuth.FaceTips.FACE_AUTH_TIP_TOO_DARK: 690e41f4b71Sopenharmony_ci // do something; 691e41f4b71Sopenharmony_ci default: 692e41f4b71Sopenharmony_ci // do others 693e41f4b71Sopenharmony_ci } 694e41f4b71Sopenharmony_ci } 695e41f4b71Sopenharmony_ci } as userAuth.AuthEvent); 696e41f4b71Sopenharmony_ci auth.start(); 697e41f4b71Sopenharmony_ci console.log('authV9 start success'); 698e41f4b71Sopenharmony_ci} catch (error) { 699e41f4b71Sopenharmony_ci console.error('authV9 error = ' + error); 700e41f4b71Sopenharmony_ci // do error 701e41f4b71Sopenharmony_ci} 702e41f4b71Sopenharmony_ci``` 703e41f4b71Sopenharmony_ci 704e41f4b71Sopenharmony_ci## AuthInstance<sup>(deprecated)</sup> 705e41f4b71Sopenharmony_ci 706e41f4b71Sopenharmony_ci执行用户认证的对象。 707e41f4b71Sopenharmony_ci 708e41f4b71Sopenharmony_ci> **说明:** 709e41f4b71Sopenharmony_ci> 从 API version 9 开始支持,从 API version 10 开始废弃,请使用[UserAuthInstance](#userauthinstance10)替代。 710e41f4b71Sopenharmony_ci 711e41f4b71Sopenharmony_ci### on<sup>(deprecated)</sup> 712e41f4b71Sopenharmony_ci 713e41f4b71Sopenharmony_cion : (name : AuthEventKey, callback : AuthEvent) => void 714e41f4b71Sopenharmony_ci 715e41f4b71Sopenharmony_ci订阅指定类型的用户认证事件。 716e41f4b71Sopenharmony_ci 717e41f4b71Sopenharmony_ci> **说明:** 718e41f4b71Sopenharmony_ci> - 从 API version 9 开始支持,从 API version 10 开始废弃。 719e41f4b71Sopenharmony_ci> - 使用获取到的[AuthInstance](#authinstancedeprecated)对象调用该接口进行订阅。 720e41f4b71Sopenharmony_ci 721e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.UserIAM.UserAuth.Core 722e41f4b71Sopenharmony_ci 723e41f4b71Sopenharmony_ci**参数:** 724e41f4b71Sopenharmony_ci 725e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 726e41f4b71Sopenharmony_ci| --------- | -------------------------- | ---- | ------------------------- | 727e41f4b71Sopenharmony_ci| name | [AuthEventKey](#autheventkeydeprecated) | 是 | 表示认证事件类型,取值为"result"时,回调函数返回认证结果;取值为"tip"时,回调函数返回认证过程中的提示信息。 | 728e41f4b71Sopenharmony_ci| callback | [AuthEvent](#autheventdeprecated) | 是 | 认证接口的回调函数,用于返回认证结果或认证过程中的提示信息。 | 729e41f4b71Sopenharmony_ci 730e41f4b71Sopenharmony_ci**错误码:** 731e41f4b71Sopenharmony_ci 732e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[用户认证错误码](errorcode-useriam.md)。 733e41f4b71Sopenharmony_ci 734e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 735e41f4b71Sopenharmony_ci| -------- | ------- | 736e41f4b71Sopenharmony_ci| 401 | Incorrect parameters. | 737e41f4b71Sopenharmony_ci| 12500002 | General operation error. | 738e41f4b71Sopenharmony_ci 739e41f4b71Sopenharmony_ci**示例:** 740e41f4b71Sopenharmony_ci 741e41f4b71Sopenharmony_ci```ts 742e41f4b71Sopenharmony_ciimport { userAuth } from '@kit.UserAuthenticationKit'; 743e41f4b71Sopenharmony_ci 744e41f4b71Sopenharmony_cilet challenge = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8]); 745e41f4b71Sopenharmony_cilet authType = userAuth.UserAuthType.FACE; 746e41f4b71Sopenharmony_cilet authTrustLevel = userAuth.AuthTrustLevel.ATL1; 747e41f4b71Sopenharmony_citry { 748e41f4b71Sopenharmony_ci let auth = userAuth.getAuthInstance(challenge, authType, authTrustLevel); 749e41f4b71Sopenharmony_ci // 订阅认证结果 750e41f4b71Sopenharmony_ci auth.on('result', { 751e41f4b71Sopenharmony_ci callback: (result: userAuth.AuthResultInfo) => { 752e41f4b71Sopenharmony_ci console.log('authV9 result ' + result.result); 753e41f4b71Sopenharmony_ci console.log('authV9 token ' + result.token); 754e41f4b71Sopenharmony_ci console.log('authV9 remainAttempts ' + result.remainAttempts); 755e41f4b71Sopenharmony_ci console.log('authV9 lockoutDuration ' + result.lockoutDuration); 756e41f4b71Sopenharmony_ci } 757e41f4b71Sopenharmony_ci }); 758e41f4b71Sopenharmony_ci // 订阅认证过程中的提示信息 759e41f4b71Sopenharmony_ci auth.on('tip', { 760e41f4b71Sopenharmony_ci callback : (result : userAuth.TipInfo) => { 761e41f4b71Sopenharmony_ci switch (result.tip) { 762e41f4b71Sopenharmony_ci case userAuth.FaceTips.FACE_AUTH_TIP_TOO_BRIGHT: 763e41f4b71Sopenharmony_ci // do something; 764e41f4b71Sopenharmony_ci case userAuth.FaceTips.FACE_AUTH_TIP_TOO_DARK: 765e41f4b71Sopenharmony_ci // do something; 766e41f4b71Sopenharmony_ci default: 767e41f4b71Sopenharmony_ci // do others 768e41f4b71Sopenharmony_ci } 769e41f4b71Sopenharmony_ci } 770e41f4b71Sopenharmony_ci } as userAuth.AuthEvent); 771e41f4b71Sopenharmony_ci auth.start(); 772e41f4b71Sopenharmony_ci console.log('authV9 start success'); 773e41f4b71Sopenharmony_ci} catch (error) { 774e41f4b71Sopenharmony_ci console.error('authV9 error = ' + error); 775e41f4b71Sopenharmony_ci // do error 776e41f4b71Sopenharmony_ci} 777e41f4b71Sopenharmony_ci``` 778e41f4b71Sopenharmony_ci 779e41f4b71Sopenharmony_ci### off<sup>(deprecated)</sup> 780e41f4b71Sopenharmony_ci 781e41f4b71Sopenharmony_cioff : (name : AuthEventKey) => void 782e41f4b71Sopenharmony_ci 783e41f4b71Sopenharmony_ci取消订阅特定类型的认证事件。 784e41f4b71Sopenharmony_ci 785e41f4b71Sopenharmony_ci> **说明:** 786e41f4b71Sopenharmony_ci> - 从 API version 9 开始支持,从 API version 10 开始废弃。 787e41f4b71Sopenharmony_ci> - 需要使用已经成功订阅事件的[AuthInstance](#authinstancedeprecated)对象调用该接口进行取消订阅。 788e41f4b71Sopenharmony_ci 789e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.UserIAM.UserAuth.Core 790e41f4b71Sopenharmony_ci 791e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 792e41f4b71Sopenharmony_ci| --------- | -------------------------- | ---- | ------------------------- | 793e41f4b71Sopenharmony_ci| name | [AuthEventKey](#autheventkeydeprecated) | 是 | 表示认证事件类型,取值为"result"时,取消订阅认证结果;取值为"tip"时,取消订阅认证过程中的提示信息。 | 794e41f4b71Sopenharmony_ci 795e41f4b71Sopenharmony_ci**错误码:** 796e41f4b71Sopenharmony_ci 797e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[用户认证错误码](errorcode-useriam.md)。 798e41f4b71Sopenharmony_ci 799e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 800e41f4b71Sopenharmony_ci| -------- | ------- | 801e41f4b71Sopenharmony_ci| 401 | Incorrect parameters. | 802e41f4b71Sopenharmony_ci| 12500002 | General operation error. | 803e41f4b71Sopenharmony_ci 804e41f4b71Sopenharmony_ci**示例:** 805e41f4b71Sopenharmony_ci 806e41f4b71Sopenharmony_ci```ts 807e41f4b71Sopenharmony_ciimport { userAuth } from '@kit.UserAuthenticationKit'; 808e41f4b71Sopenharmony_ci 809e41f4b71Sopenharmony_cilet challenge = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8]); 810e41f4b71Sopenharmony_cilet authType = userAuth.UserAuthType.FACE; 811e41f4b71Sopenharmony_cilet authTrustLevel = userAuth.AuthTrustLevel.ATL1; 812e41f4b71Sopenharmony_citry { 813e41f4b71Sopenharmony_ci let auth = userAuth.getAuthInstance(challenge, authType, authTrustLevel); 814e41f4b71Sopenharmony_ci // 订阅认证结果 815e41f4b71Sopenharmony_ci auth.on('result', { 816e41f4b71Sopenharmony_ci callback: (result: userAuth.AuthResultInfo) => { 817e41f4b71Sopenharmony_ci console.log('authV9 result ' + result.result); 818e41f4b71Sopenharmony_ci console.log('authV9 token ' + result.token); 819e41f4b71Sopenharmony_ci console.log('authV9 remainAttempts ' + result.remainAttempts); 820e41f4b71Sopenharmony_ci console.log('authV9 lockoutDuration ' + result.lockoutDuration); 821e41f4b71Sopenharmony_ci } 822e41f4b71Sopenharmony_ci }); 823e41f4b71Sopenharmony_ci // 取消订阅结果 824e41f4b71Sopenharmony_ci auth.off('result'); 825e41f4b71Sopenharmony_ci console.info('cancel subscribe authentication event success'); 826e41f4b71Sopenharmony_ci} catch (error) { 827e41f4b71Sopenharmony_ci console.error('cancel subscribe authentication event failed, error =' + error); 828e41f4b71Sopenharmony_ci // do error 829e41f4b71Sopenharmony_ci} 830e41f4b71Sopenharmony_ci``` 831e41f4b71Sopenharmony_ci 832e41f4b71Sopenharmony_ci### start<sup>(deprecated)</sup> 833e41f4b71Sopenharmony_ci 834e41f4b71Sopenharmony_cistart : () => void 835e41f4b71Sopenharmony_ci 836e41f4b71Sopenharmony_ci开始认证。 837e41f4b71Sopenharmony_ci 838e41f4b71Sopenharmony_ci> **说明:** 839e41f4b71Sopenharmony_ci> - 从 API version 9 开始支持,从 API version 10 开始废弃。 840e41f4b71Sopenharmony_ci> - 使用获取到的[AuthInstance](#authinstancedeprecated)对象调用该接口进行认证。 841e41f4b71Sopenharmony_ci 842e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.ACCESS_BIOMETRIC 843e41f4b71Sopenharmony_ci 844e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.UserIAM.UserAuth.Core 845e41f4b71Sopenharmony_ci 846e41f4b71Sopenharmony_ci**错误码:** 847e41f4b71Sopenharmony_ci 848e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[用户认证错误码](errorcode-useriam.md)。 849e41f4b71Sopenharmony_ci 850e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 851e41f4b71Sopenharmony_ci| -------- | ------- | 852e41f4b71Sopenharmony_ci| 201 | Permission verification failed. | 853e41f4b71Sopenharmony_ci| 401 | Incorrect parameters. | 854e41f4b71Sopenharmony_ci| 12500001 | Authentication failed. | 855e41f4b71Sopenharmony_ci| 12500002 | General operation error. | 856e41f4b71Sopenharmony_ci| 12500003 | The operation is canceled. | 857e41f4b71Sopenharmony_ci| 12500004 | The operation is time-out. | 858e41f4b71Sopenharmony_ci| 12500005 | The authentication type is not supported. | 859e41f4b71Sopenharmony_ci| 12500006 | The authentication trust level is not supported. | 860e41f4b71Sopenharmony_ci| 12500007 | The authentication task is busy. | 861e41f4b71Sopenharmony_ci| 12500009 | The authenticator is locked. | 862e41f4b71Sopenharmony_ci| 12500010 | The type of credential has not been enrolled. | 863e41f4b71Sopenharmony_ci 864e41f4b71Sopenharmony_ci**示例:** 865e41f4b71Sopenharmony_ci 866e41f4b71Sopenharmony_ci```ts 867e41f4b71Sopenharmony_ciimport { userAuth } from '@kit.UserAuthenticationKit'; 868e41f4b71Sopenharmony_ci 869e41f4b71Sopenharmony_cilet challenge = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8]); 870e41f4b71Sopenharmony_cilet authType = userAuth.UserAuthType.FACE; 871e41f4b71Sopenharmony_cilet authTrustLevel = userAuth.AuthTrustLevel.ATL1; 872e41f4b71Sopenharmony_ci 873e41f4b71Sopenharmony_citry { 874e41f4b71Sopenharmony_ci let auth = userAuth.getAuthInstance(challenge, authType, authTrustLevel); 875e41f4b71Sopenharmony_ci auth.start(); 876e41f4b71Sopenharmony_ci console.info('authV9 start auth success'); 877e41f4b71Sopenharmony_ci} catch (error) { 878e41f4b71Sopenharmony_ci console.error('authV9 start auth failed, error = ' + error); 879e41f4b71Sopenharmony_ci} 880e41f4b71Sopenharmony_ci``` 881e41f4b71Sopenharmony_ci 882e41f4b71Sopenharmony_ci### cancel<sup>(deprecated)</sup> 883e41f4b71Sopenharmony_ci 884e41f4b71Sopenharmony_cicancel : () => void 885e41f4b71Sopenharmony_ci 886e41f4b71Sopenharmony_ci取消认证。 887e41f4b71Sopenharmony_ci 888e41f4b71Sopenharmony_ci> **说明:** 889e41f4b71Sopenharmony_ci> 890e41f4b71Sopenharmony_ci> - 从 API version 9 开始支持,从 API version 10 开始废弃。 891e41f4b71Sopenharmony_ci> - 使用获取到的[AuthInstance](#authinstancedeprecated)对象调用该接口进行取消认证,此[AuthInstance](#authinstancedeprecated)需要是正在进行认证的对象。 892e41f4b71Sopenharmony_ci 893e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.ACCESS_BIOMETRIC 894e41f4b71Sopenharmony_ci 895e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.UserIAM.UserAuth.Core 896e41f4b71Sopenharmony_ci 897e41f4b71Sopenharmony_ci**错误码:** 898e41f4b71Sopenharmony_ci 899e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[用户认证错误码](errorcode-useriam.md)。 900e41f4b71Sopenharmony_ci 901e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 902e41f4b71Sopenharmony_ci| -------- | ------- | 903e41f4b71Sopenharmony_ci| 201 | Permission verification failed. | 904e41f4b71Sopenharmony_ci| 401 | Incorrect parameters. | 905e41f4b71Sopenharmony_ci| 12500002 | General operation error. | 906e41f4b71Sopenharmony_ci 907e41f4b71Sopenharmony_ci**示例:** 908e41f4b71Sopenharmony_ci 909e41f4b71Sopenharmony_ci```ts 910e41f4b71Sopenharmony_ciimport { userAuth } from '@kit.UserAuthenticationKit'; 911e41f4b71Sopenharmony_ci 912e41f4b71Sopenharmony_cilet challenge = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8]); 913e41f4b71Sopenharmony_cilet authType = userAuth.UserAuthType.FACE; 914e41f4b71Sopenharmony_cilet authTrustLevel = userAuth.AuthTrustLevel.ATL1; 915e41f4b71Sopenharmony_ci 916e41f4b71Sopenharmony_citry { 917e41f4b71Sopenharmony_ci let auth = userAuth.getAuthInstance(challenge, authType, authTrustLevel); 918e41f4b71Sopenharmony_ci auth.cancel(); 919e41f4b71Sopenharmony_ci console.info('cancel auth success'); 920e41f4b71Sopenharmony_ci} catch (error) { 921e41f4b71Sopenharmony_ci console.error('cancel auth failed, error = ' + error); 922e41f4b71Sopenharmony_ci} 923e41f4b71Sopenharmony_ci``` 924e41f4b71Sopenharmony_ci 925e41f4b71Sopenharmony_ci## userAuth.getAuthInstance<sup>(deprecated)</sup> 926e41f4b71Sopenharmony_ci 927e41f4b71Sopenharmony_cigetAuthInstance(challenge : Uint8Array, authType : UserAuthType, authTrustLevel : AuthTrustLevel): AuthInstance 928e41f4b71Sopenharmony_ci 929e41f4b71Sopenharmony_ci获取AuthInstance对象,用于执行用户身份认证。 930e41f4b71Sopenharmony_ci 931e41f4b71Sopenharmony_ci> **说明:** 932e41f4b71Sopenharmony_ci> 933e41f4b71Sopenharmony_ci> - 从 API version 9 开始支持,从 API version 10 开始废弃,请使用[getUserAuthInstance](#userauthgetuserauthinstance10)替代。 934e41f4b71Sopenharmony_ci> - 每个AuthInstance只能进行一次认证,若需要再次进行认证则需重新获取AuthInstance。 935e41f4b71Sopenharmony_ci 936e41f4b71Sopenharmony_ci 937e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.UserIAM.UserAuth.Core 938e41f4b71Sopenharmony_ci 939e41f4b71Sopenharmony_ci**参数:** 940e41f4b71Sopenharmony_ci 941e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 942e41f4b71Sopenharmony_ci| -------------- | ---------------------------------------- | ---- | ------------------------ | 943e41f4b71Sopenharmony_ci| challenge | Uint8Array | 是 | 挑战值,最大长度为32字节,可以传Uint8Array([])。 | 944e41f4b71Sopenharmony_ci| authType | [UserAuthType](#userauthtype8) | 是 | 认证类型,当前支持FACE和FINGERPRINT。 | 945e41f4b71Sopenharmony_ci| authTrustLevel | [AuthTrustLevel](#authtrustlevel8) | 是 | 认证信任等级。 | 946e41f4b71Sopenharmony_ci 947e41f4b71Sopenharmony_ci**返回值:** 948e41f4b71Sopenharmony_ci 949e41f4b71Sopenharmony_ci| 类型 | 说明 | 950e41f4b71Sopenharmony_ci| --------------------------------------- | ------------ | 951e41f4b71Sopenharmony_ci| [AuthInstance](#authinstancedeprecated) | 认证器对象。 | 952e41f4b71Sopenharmony_ci 953e41f4b71Sopenharmony_ci**错误码:** 954e41f4b71Sopenharmony_ci 955e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[用户认证错误码](errorcode-useriam.md)。 956e41f4b71Sopenharmony_ci 957e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 958e41f4b71Sopenharmony_ci| -------- | ------- | 959e41f4b71Sopenharmony_ci| 401 | Incorrect parameters. | 960e41f4b71Sopenharmony_ci| 12500002 | General operation error. | 961e41f4b71Sopenharmony_ci| 12500005 | The authentication type is not supported. | 962e41f4b71Sopenharmony_ci| 12500006 | The authentication trust level is not supported. | 963e41f4b71Sopenharmony_ci 964e41f4b71Sopenharmony_ci**示例:** 965e41f4b71Sopenharmony_ci 966e41f4b71Sopenharmony_ci```ts 967e41f4b71Sopenharmony_ciimport { userAuth } from '@kit.UserAuthenticationKit'; 968e41f4b71Sopenharmony_ci 969e41f4b71Sopenharmony_cilet challenge = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8]); 970e41f4b71Sopenharmony_cilet authType = userAuth.UserAuthType.FACE; 971e41f4b71Sopenharmony_cilet authTrustLevel = userAuth.AuthTrustLevel.ATL1; 972e41f4b71Sopenharmony_ci 973e41f4b71Sopenharmony_citry { 974e41f4b71Sopenharmony_ci let auth = userAuth.getAuthInstance(challenge, authType, authTrustLevel); 975e41f4b71Sopenharmony_ci console.info('let auth instance success'); 976e41f4b71Sopenharmony_ci} catch (error) { 977e41f4b71Sopenharmony_ci console.error('get auth instance success failed, error = ' + error); 978e41f4b71Sopenharmony_ci} 979e41f4b71Sopenharmony_ci``` 980e41f4b71Sopenharmony_ci 981e41f4b71Sopenharmony_ci## userAuth.getAvailableStatus<sup>9+</sup> 982e41f4b71Sopenharmony_ci 983e41f4b71Sopenharmony_cigetAvailableStatus(authType : UserAuthType, authTrustLevel : AuthTrustLevel): void 984e41f4b71Sopenharmony_ci 985e41f4b71Sopenharmony_ci查询指定类型和等级的认证能力是否支持。 986e41f4b71Sopenharmony_ci 987e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.ACCESS_BIOMETRIC 988e41f4b71Sopenharmony_ci 989e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 990e41f4b71Sopenharmony_ci 991e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.UserIAM.UserAuth.Core 992e41f4b71Sopenharmony_ci 993e41f4b71Sopenharmony_ci**参数:** 994e41f4b71Sopenharmony_ci 995e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 996e41f4b71Sopenharmony_ci| -------------- | ---------------------------------- | ---- | -------------------------- | 997e41f4b71Sopenharmony_ci| authType | [UserAuthType](#userauthtype8) | 是 | 认证类型。从 API version 11 开始支持PIN查询。| 998e41f4b71Sopenharmony_ci| authTrustLevel | [AuthTrustLevel](#authtrustlevel8) | 是 | 认证信任等级。 | 999e41f4b71Sopenharmony_ci 1000e41f4b71Sopenharmony_ci> **错误码返回顺序说明:** 1001e41f4b71Sopenharmony_ci> 1002e41f4b71Sopenharmony_ci> - 无对应执行器注册时,判断系统不支持该认证能力,需返回12500005。 1003e41f4b71Sopenharmony_ci> - 有对应执行器注册时,功能未禁用,但认证安全等级低于业务指定时,需返回12500006。 1004e41f4b71Sopenharmony_ci> - 有对应执行器注册时,功能未禁用,但用户没有注册凭据时,需返回12500010。 1005e41f4b71Sopenharmony_ci> - 有对应执行器注册时,功能未禁用,但密码过期时,需返回12500013。 1006e41f4b71Sopenharmony_ci 1007e41f4b71Sopenharmony_ci**错误码:** 1008e41f4b71Sopenharmony_ci 1009e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[用户认证错误码](errorcode-useriam.md)。 1010e41f4b71Sopenharmony_ci 1011e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1012e41f4b71Sopenharmony_ci| -------- | ------- | 1013e41f4b71Sopenharmony_ci| 201 | Permission verification failed. | 1014e41f4b71Sopenharmony_ci| 401 | Incorrect parameters. Possible causes: 1.Mandatory parameters are left unspecified. | 1015e41f4b71Sopenharmony_ci| 12500002 | General operation error. | 1016e41f4b71Sopenharmony_ci| 12500005 | The authentication type is not supported. | 1017e41f4b71Sopenharmony_ci| 12500006 | The authentication trust level is not supported. | 1018e41f4b71Sopenharmony_ci| 12500010 | The type of credential has not been enrolled. | 1019e41f4b71Sopenharmony_ci| 12500013 | Operation failed because of PIN expired. | 1020e41f4b71Sopenharmony_ci 1021e41f4b71Sopenharmony_ci**示例:** 1022e41f4b71Sopenharmony_ci 1023e41f4b71Sopenharmony_ci```ts 1024e41f4b71Sopenharmony_ciimport { userAuth } from '@kit.UserAuthenticationKit'; 1025e41f4b71Sopenharmony_ci 1026e41f4b71Sopenharmony_citry { 1027e41f4b71Sopenharmony_ci userAuth.getAvailableStatus(userAuth.UserAuthType.FACE, userAuth.AuthTrustLevel.ATL1); 1028e41f4b71Sopenharmony_ci console.info('current auth trust level is supported'); 1029e41f4b71Sopenharmony_ci} catch (error) { 1030e41f4b71Sopenharmony_ci console.error('current auth trust level is not supported, error = ' + error); 1031e41f4b71Sopenharmony_ci} 1032e41f4b71Sopenharmony_ci``` 1033e41f4b71Sopenharmony_ci 1034e41f4b71Sopenharmony_ci## UserAuthResultCode<sup>9+</sup> 1035e41f4b71Sopenharmony_ci 1036e41f4b71Sopenharmony_ci表示返回码的枚举。 1037e41f4b71Sopenharmony_ci 1038e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 1039e41f4b71Sopenharmony_ci 1040e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.UserIAM.UserAuth.Core 1041e41f4b71Sopenharmony_ci 1042e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 1043e41f4b71Sopenharmony_ci| ----------------------- | ------ | -------------------- | 1044e41f4b71Sopenharmony_ci| SUCCESS | 12500000 | 执行成功。 | 1045e41f4b71Sopenharmony_ci| FAIL | 12500001 | 认证失败。 | 1046e41f4b71Sopenharmony_ci| GENERAL_ERROR | 12500002 | 操作通用错误。 | 1047e41f4b71Sopenharmony_ci| CANCELED | 12500003 | 操作取消。 | 1048e41f4b71Sopenharmony_ci| TIMEOUT | 12500004 | 操作超时。 | 1049e41f4b71Sopenharmony_ci| TYPE_NOT_SUPPORT | 12500005 | 不支持的认证类型。 | 1050e41f4b71Sopenharmony_ci| TRUST_LEVEL_NOT_SUPPORT | 12500006 | 不支持的认证等级。 | 1051e41f4b71Sopenharmony_ci| BUSY | 12500007 | 忙碌状态。 | 1052e41f4b71Sopenharmony_ci| LOCKED | 12500009 | 认证器已锁定。 | 1053e41f4b71Sopenharmony_ci| NOT_ENROLLED | 12500010 | 用户未录入认证信息。 | 1054e41f4b71Sopenharmony_ci| CANCELED_FROM_WIDGET<sup>10+</sup> | 12500011 | 当前的认证操作被用户从组件取消。返回这个错误码,表示使用应用自定义认证。 | 1055e41f4b71Sopenharmony_ci| PIN_EXPIRED<sup>12+</sup> | 12500013 | 当前的认证操作执行失败。返回这个错误码,表示系统锁屏密码过期。 | 1056e41f4b71Sopenharmony_ci 1057e41f4b71Sopenharmony_ci## UserAuth<sup>(deprecated)</sup> 1058e41f4b71Sopenharmony_ci 1059e41f4b71Sopenharmony_ci认证器对象。 1060e41f4b71Sopenharmony_ci 1061e41f4b71Sopenharmony_ci### constructor<sup>(deprecated)</sup> 1062e41f4b71Sopenharmony_ci 1063e41f4b71Sopenharmony_ciconstructor() 1064e41f4b71Sopenharmony_ci 1065e41f4b71Sopenharmony_ci创建认证器对象。 1066e41f4b71Sopenharmony_ci 1067e41f4b71Sopenharmony_ci> **说明:** 1068e41f4b71Sopenharmony_ci> 从 API version 8 开始支持,从 API version 9 开始废弃,请使用[getAuthInstance](#userauthgetauthinstancedeprecated)替代。 1069e41f4b71Sopenharmony_ci 1070e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.UserIAM.UserAuth.Core 1071e41f4b71Sopenharmony_ci 1072e41f4b71Sopenharmony_ci**示例:** 1073e41f4b71Sopenharmony_ci 1074e41f4b71Sopenharmony_ci```ts 1075e41f4b71Sopenharmony_ciimport { userAuth } from '@kit.UserAuthenticationKit'; 1076e41f4b71Sopenharmony_ci 1077e41f4b71Sopenharmony_cilet auth = new userAuth.UserAuth(); 1078e41f4b71Sopenharmony_ci``` 1079e41f4b71Sopenharmony_ci 1080e41f4b71Sopenharmony_ci### getVersion<sup>(deprecated)</sup> 1081e41f4b71Sopenharmony_ci 1082e41f4b71Sopenharmony_cigetVersion() : number 1083e41f4b71Sopenharmony_ci 1084e41f4b71Sopenharmony_ci获取认证器的版本信息。 1085e41f4b71Sopenharmony_ci 1086e41f4b71Sopenharmony_ci> **说明:** 1087e41f4b71Sopenharmony_ci> 从 API version 8 开始支持,从 API version 9 开始废弃。 1088e41f4b71Sopenharmony_ci 1089e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.ACCESS_BIOMETRIC 1090e41f4b71Sopenharmony_ci 1091e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.UserIAM.UserAuth.Core 1092e41f4b71Sopenharmony_ci 1093e41f4b71Sopenharmony_ci**返回值:** 1094e41f4b71Sopenharmony_ci 1095e41f4b71Sopenharmony_ci| 类型 | 说明 | 1096e41f4b71Sopenharmony_ci| ------ | ---------------------- | 1097e41f4b71Sopenharmony_ci| number | 认证器版本信息。 | 1098e41f4b71Sopenharmony_ci 1099e41f4b71Sopenharmony_ci**示例:** 1100e41f4b71Sopenharmony_ci 1101e41f4b71Sopenharmony_ci```ts 1102e41f4b71Sopenharmony_ciimport { userAuth } from '@kit.UserAuthenticationKit'; 1103e41f4b71Sopenharmony_ci 1104e41f4b71Sopenharmony_cilet auth = new userAuth.UserAuth(); 1105e41f4b71Sopenharmony_cilet version = auth.getVersion(); 1106e41f4b71Sopenharmony_ciconsole.info('auth version = ' + version); 1107e41f4b71Sopenharmony_ci``` 1108e41f4b71Sopenharmony_ci 1109e41f4b71Sopenharmony_ci### getAvailableStatus<sup>(deprecated)</sup> 1110e41f4b71Sopenharmony_ci 1111e41f4b71Sopenharmony_cigetAvailableStatus(authType : UserAuthType, authTrustLevel : AuthTrustLevel) : number 1112e41f4b71Sopenharmony_ci 1113e41f4b71Sopenharmony_ci查询指定类型和等级的认证能力是否支持。 1114e41f4b71Sopenharmony_ci 1115e41f4b71Sopenharmony_ci> **说明:** 1116e41f4b71Sopenharmony_ci> 从 API version 8 开始支持,从 API version 9 开始废弃,请使用[getAvailableStatus](#userauthgetavailablestatus9)替代。 1117e41f4b71Sopenharmony_ci 1118e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.ACCESS_BIOMETRIC 1119e41f4b71Sopenharmony_ci 1120e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.UserIAM.UserAuth.Core 1121e41f4b71Sopenharmony_ci 1122e41f4b71Sopenharmony_ci**参数:** 1123e41f4b71Sopenharmony_ci 1124e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1125e41f4b71Sopenharmony_ci| -------------- | ---------------------------------- | ---- | -------------------------- | 1126e41f4b71Sopenharmony_ci| authType | [UserAuthType](#userauthtype8) | 是 | 认证类型,当前支持FACE和FINGERPRINT。 | 1127e41f4b71Sopenharmony_ci| authTrustLevel | [AuthTrustLevel](#authtrustlevel8) | 是 | 认证信任等级。 | 1128e41f4b71Sopenharmony_ci 1129e41f4b71Sopenharmony_ci**返回值:** 1130e41f4b71Sopenharmony_ci 1131e41f4b71Sopenharmony_ci| 类型 | 说明 | 1132e41f4b71Sopenharmony_ci| ------ | ------------------------------------------------------------ | 1133e41f4b71Sopenharmony_ci| number | 查询结果,结果为SUCCESS时表示支持,其他返回值参见[ResultCode](#resultcodedeprecated)。 | 1134e41f4b71Sopenharmony_ci 1135e41f4b71Sopenharmony_ci**示例:** 1136e41f4b71Sopenharmony_ci 1137e41f4b71Sopenharmony_ci```ts 1138e41f4b71Sopenharmony_ciimport { userAuth } from '@kit.UserAuthenticationKit'; 1139e41f4b71Sopenharmony_ci 1140e41f4b71Sopenharmony_cilet auth = new userAuth.UserAuth(); 1141e41f4b71Sopenharmony_cilet checkCode = auth.getAvailableStatus(userAuth.UserAuthType.FACE, userAuth.AuthTrustLevel.ATL1); 1142e41f4b71Sopenharmony_ciif (checkCode == userAuth.ResultCode.SUCCESS) { 1143e41f4b71Sopenharmony_ci console.info('check auth support success'); 1144e41f4b71Sopenharmony_ci} else { 1145e41f4b71Sopenharmony_ci console.error('check auth support fail, code = ' + checkCode); 1146e41f4b71Sopenharmony_ci} 1147e41f4b71Sopenharmony_ci``` 1148e41f4b71Sopenharmony_ci 1149e41f4b71Sopenharmony_ci### auth<sup>(deprecated)</sup> 1150e41f4b71Sopenharmony_ci 1151e41f4b71Sopenharmony_ciauth(challenge: Uint8Array, authType: UserAuthType, authTrustLevel: AuthTrustLevel, callback: IUserAuthCallback): Uint8Array 1152e41f4b71Sopenharmony_ci 1153e41f4b71Sopenharmony_ci执行用户认证,使用回调函数返回结果。 1154e41f4b71Sopenharmony_ci 1155e41f4b71Sopenharmony_ci> **说明:** 1156e41f4b71Sopenharmony_ci> 从 API version 8 开始支持,从 API version 9 开始废弃,建议使用[start](#startdeprecated)代替。 1157e41f4b71Sopenharmony_ci 1158e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.ACCESS_BIOMETRIC 1159e41f4b71Sopenharmony_ci 1160e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.UserIAM.UserAuth.Core 1161e41f4b71Sopenharmony_ci 1162e41f4b71Sopenharmony_ci**参数:** 1163e41f4b71Sopenharmony_ci 1164e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1165e41f4b71Sopenharmony_ci| -------------- | ---------------------------------------- | ---- | ------------------------ | 1166e41f4b71Sopenharmony_ci| challenge | Uint8Array | 是 | 挑战值,可以传Uint8Array([])。 | 1167e41f4b71Sopenharmony_ci| authType | [UserAuthType](#userauthtype8) | 是 | 认证类型,当前支持FACE和FINGERPRINT。 | 1168e41f4b71Sopenharmony_ci| authTrustLevel | [AuthTrustLevel](#authtrustlevel8) | 是 | 认证信任等级。 | 1169e41f4b71Sopenharmony_ci| callback | [IUserAuthCallback](#iuserauthcallbackdeprecated) | 是 | 回调函数。 | 1170e41f4b71Sopenharmony_ci 1171e41f4b71Sopenharmony_ci**返回值:** 1172e41f4b71Sopenharmony_ci 1173e41f4b71Sopenharmony_ci| 类型 | 说明 | 1174e41f4b71Sopenharmony_ci| ---------- | ------------------------------------------------------------ | 1175e41f4b71Sopenharmony_ci| Uint8Array | ContextId,作为取消认证[cancelAuth](#cancelauthdeprecated)接口的入参。 | 1176e41f4b71Sopenharmony_ci 1177e41f4b71Sopenharmony_ci**示例:** 1178e41f4b71Sopenharmony_ci 1179e41f4b71Sopenharmony_ci```ts 1180e41f4b71Sopenharmony_ciimport { userAuth } from '@kit.UserAuthenticationKit'; 1181e41f4b71Sopenharmony_ci 1182e41f4b71Sopenharmony_cilet auth = new userAuth.UserAuth(); 1183e41f4b71Sopenharmony_cilet challenge = new Uint8Array([]); 1184e41f4b71Sopenharmony_ciauth.auth(challenge, userAuth.UserAuthType.FACE, userAuth.AuthTrustLevel.ATL1, { 1185e41f4b71Sopenharmony_ci onResult: (result, extraInfo) => { 1186e41f4b71Sopenharmony_ci try { 1187e41f4b71Sopenharmony_ci console.info('auth onResult result = ' + result); 1188e41f4b71Sopenharmony_ci console.info('auth onResult extraInfo = ' + JSON.stringify(extraInfo)); 1189e41f4b71Sopenharmony_ci if (result == userAuth.ResultCode.SUCCESS) { 1190e41f4b71Sopenharmony_ci // 此处添加认证成功逻辑 1191e41f4b71Sopenharmony_ci } else { 1192e41f4b71Sopenharmony_ci // 此处添加认证失败逻辑 1193e41f4b71Sopenharmony_ci } 1194e41f4b71Sopenharmony_ci } catch (error) { 1195e41f4b71Sopenharmony_ci console.error('auth onResult error = ' + error); 1196e41f4b71Sopenharmony_ci } 1197e41f4b71Sopenharmony_ci } 1198e41f4b71Sopenharmony_ci}); 1199e41f4b71Sopenharmony_ci``` 1200e41f4b71Sopenharmony_ci 1201e41f4b71Sopenharmony_ci### cancelAuth<sup>(deprecated)</sup> 1202e41f4b71Sopenharmony_ci 1203e41f4b71Sopenharmony_cicancelAuth(contextID : Uint8Array) : number 1204e41f4b71Sopenharmony_ci 1205e41f4b71Sopenharmony_ci表示通过contextID取消本次认证操作。 1206e41f4b71Sopenharmony_ci 1207e41f4b71Sopenharmony_ci> **说明:** 1208e41f4b71Sopenharmony_ci> 从 API version 8 开始支持,从 API version 9 开始废弃,建议使用[cancel](#canceldeprecated)代替。 1209e41f4b71Sopenharmony_ci 1210e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.ACCESS_BIOMETRIC 1211e41f4b71Sopenharmony_ci 1212e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.UserIAM.UserAuth.Core 1213e41f4b71Sopenharmony_ci 1214e41f4b71Sopenharmony_ci**参数:** 1215e41f4b71Sopenharmony_ci 1216e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1217e41f4b71Sopenharmony_ci| --------- | ---------- | ---- | ------------------------------------------ | 1218e41f4b71Sopenharmony_ci| contextID | Uint8Array | 是 | 上下文的标识,通过[auth](#authdeprecated)接口获取。 | 1219e41f4b71Sopenharmony_ci 1220e41f4b71Sopenharmony_ci**返回值:** 1221e41f4b71Sopenharmony_ci 1222e41f4b71Sopenharmony_ci| 类型 | 说明 | 1223e41f4b71Sopenharmony_ci| ------ | ------------------------ | 1224e41f4b71Sopenharmony_ci| number | 取消认证的结果,结果为SUCCESS时表示取消成功,其他返回值参见[ResultCode](#resultcodedeprecated)。 | 1225e41f4b71Sopenharmony_ci 1226e41f4b71Sopenharmony_ci**示例:** 1227e41f4b71Sopenharmony_ci 1228e41f4b71Sopenharmony_ci```ts 1229e41f4b71Sopenharmony_ciimport { userAuth } from '@kit.UserAuthenticationKit'; 1230e41f4b71Sopenharmony_ci 1231e41f4b71Sopenharmony_ci// contextId可通过auth接口获取,此处直接定义 1232e41f4b71Sopenharmony_cilet contextId = new Uint8Array([0, 1, 2, 3, 4, 5, 6, 7]); 1233e41f4b71Sopenharmony_cilet auth = new userAuth.UserAuth(); 1234e41f4b71Sopenharmony_cilet cancelCode = auth.cancelAuth(contextId); 1235e41f4b71Sopenharmony_ciif (cancelCode == userAuth.ResultCode.SUCCESS) { 1236e41f4b71Sopenharmony_ci console.info('cancel auth success'); 1237e41f4b71Sopenharmony_ci} else { 1238e41f4b71Sopenharmony_ci console.error('cancel auth fail'); 1239e41f4b71Sopenharmony_ci} 1240e41f4b71Sopenharmony_ci``` 1241e41f4b71Sopenharmony_ci 1242e41f4b71Sopenharmony_ci## IUserAuthCallback<sup>(deprecated)</sup> 1243e41f4b71Sopenharmony_ci 1244e41f4b71Sopenharmony_ci返回认证结果的回调对象。 1245e41f4b71Sopenharmony_ci 1246e41f4b71Sopenharmony_ci> **说明:** 1247e41f4b71Sopenharmony_ci> 从 API version 8 开始支持,从 API version 9 开始废弃,建议使用[AuthEvent](#autheventdeprecated)代替。 1248e41f4b71Sopenharmony_ci 1249e41f4b71Sopenharmony_ci### onResult<sup>(deprecated)</sup> 1250e41f4b71Sopenharmony_ci 1251e41f4b71Sopenharmony_cionResult: (result : number, extraInfo : AuthResult) => void 1252e41f4b71Sopenharmony_ci 1253e41f4b71Sopenharmony_ci回调函数,返回认证结果。 1254e41f4b71Sopenharmony_ci 1255e41f4b71Sopenharmony_ci> **说明:** 1256e41f4b71Sopenharmony_ci> 从 API version 8 开始支持,从 API version 9 开始废弃,建议使用[callback](#callbackdeprecated)代替。 1257e41f4b71Sopenharmony_ci 1258e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.UserIAM.UserAuth.Core 1259e41f4b71Sopenharmony_ci 1260e41f4b71Sopenharmony_ci**参数:** 1261e41f4b71Sopenharmony_ci 1262e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1263e41f4b71Sopenharmony_ci| --------- | -------------------------- | ---- | ------------------------------------------------ | 1264e41f4b71Sopenharmony_ci| result | number | 是 | 认证结果,参见[ResultCode](#resultcodedeprecated)。 | 1265e41f4b71Sopenharmony_ci| extraInfo | [AuthResult](#authresultdeprecated) | 是 | 扩展信息,不同情况下的具体信息,<br/>如果身份验证通过,则在extraInfo中返回用户认证令牌,<br/>如果身份验证失败,则在extraInfo中返回剩余的用户认证次数,<br/>如果身份验证执行器被锁定,则在extraInfo中返回冻结时间。 | 1266e41f4b71Sopenharmony_ci 1267e41f4b71Sopenharmony_ci**示例:** 1268e41f4b71Sopenharmony_ci 1269e41f4b71Sopenharmony_ci```ts 1270e41f4b71Sopenharmony_ciimport { userAuth } from '@kit.UserAuthenticationKit'; 1271e41f4b71Sopenharmony_ci 1272e41f4b71Sopenharmony_cilet auth = new userAuth.UserAuth(); 1273e41f4b71Sopenharmony_cilet challenge = new Uint8Array([]); 1274e41f4b71Sopenharmony_ciauth.auth(challenge, userAuth.UserAuthType.FACE, userAuth.AuthTrustLevel.ATL1, { 1275e41f4b71Sopenharmony_ci onResult: (result, extraInfo) => { 1276e41f4b71Sopenharmony_ci try { 1277e41f4b71Sopenharmony_ci console.info('auth onResult result = ' + result); 1278e41f4b71Sopenharmony_ci console.info('auth onResult extraInfo = ' + JSON.stringify(extraInfo)); 1279e41f4b71Sopenharmony_ci if (result == userAuth.ResultCode.SUCCESS) { 1280e41f4b71Sopenharmony_ci // 此处添加认证成功逻辑 1281e41f4b71Sopenharmony_ci } else { 1282e41f4b71Sopenharmony_ci // 此处添加认证失败逻辑 1283e41f4b71Sopenharmony_ci } 1284e41f4b71Sopenharmony_ci } catch (error) { 1285e41f4b71Sopenharmony_ci console.error('auth onResult error = ' + error); 1286e41f4b71Sopenharmony_ci } 1287e41f4b71Sopenharmony_ci } 1288e41f4b71Sopenharmony_ci}); 1289e41f4b71Sopenharmony_ci``` 1290e41f4b71Sopenharmony_ci 1291e41f4b71Sopenharmony_ci### onAcquireInfo<sup>(deprecated)</sup> 1292e41f4b71Sopenharmony_ci 1293e41f4b71Sopenharmony_cionAcquireInfo ?: (module : number, acquire : number, extraInfo : any) => void 1294e41f4b71Sopenharmony_ci 1295e41f4b71Sopenharmony_ci回调函数,返回认证过程中的提示信息,非必须实现。 1296e41f4b71Sopenharmony_ci 1297e41f4b71Sopenharmony_ci> **说明:** 1298e41f4b71Sopenharmony_ci> 从 API version 8 开始支持,从 API version 9 开始废弃,建议使用[callback](#callbackdeprecated)代替。 1299e41f4b71Sopenharmony_ci 1300e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.UserIAM.UserAuth.Core 1301e41f4b71Sopenharmony_ci 1302e41f4b71Sopenharmony_ci**参数:** 1303e41f4b71Sopenharmony_ci 1304e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1305e41f4b71Sopenharmony_ci| --------- | ------ | ---- | ------------------------------ | 1306e41f4b71Sopenharmony_ci| module | number | 是 | 发送提示信息的模块标识。 | 1307e41f4b71Sopenharmony_ci| acquire | number | 是 | 认证执过程中的提示信息。 | 1308e41f4b71Sopenharmony_ci| extraInfo | any | 是 | 预留字段。 | 1309e41f4b71Sopenharmony_ci 1310e41f4b71Sopenharmony_ci**示例:** 1311e41f4b71Sopenharmony_ci 1312e41f4b71Sopenharmony_ci```ts 1313e41f4b71Sopenharmony_ciimport { userAuth } from '@kit.UserAuthenticationKit'; 1314e41f4b71Sopenharmony_ci 1315e41f4b71Sopenharmony_cilet auth = new userAuth.UserAuth(); 1316e41f4b71Sopenharmony_cilet challenge = new Uint8Array([]); 1317e41f4b71Sopenharmony_ciauth.auth(challenge, userAuth.UserAuthType.FACE, userAuth.AuthTrustLevel.ATL1, { 1318e41f4b71Sopenharmony_ci onResult: (result, extraInfo) => { 1319e41f4b71Sopenharmony_ci try { 1320e41f4b71Sopenharmony_ci console.info('auth onResult result = ' + result); 1321e41f4b71Sopenharmony_ci console.info('auth onResult extraInfo = ' + JSON.stringify(extraInfo)); 1322e41f4b71Sopenharmony_ci if (result == userAuth.ResultCode.SUCCESS) { 1323e41f4b71Sopenharmony_ci // 此处添加认证成功逻辑 1324e41f4b71Sopenharmony_ci } else { 1325e41f4b71Sopenharmony_ci // 此处添加认证失败逻辑 1326e41f4b71Sopenharmony_ci } 1327e41f4b71Sopenharmony_ci } catch (error) { 1328e41f4b71Sopenharmony_ci console.error('auth onResult error = ' + error); 1329e41f4b71Sopenharmony_ci } 1330e41f4b71Sopenharmony_ci }, 1331e41f4b71Sopenharmony_ci onAcquireInfo: (module, acquire, extraInfo : userAuth.AuthResult) => { 1332e41f4b71Sopenharmony_ci try { 1333e41f4b71Sopenharmony_ci console.info('auth onAcquireInfo module = ' + module); 1334e41f4b71Sopenharmony_ci console.info('auth onAcquireInfo acquire = ' + acquire); 1335e41f4b71Sopenharmony_ci console.info('auth onAcquireInfo extraInfo = ' + JSON.stringify(extraInfo)); 1336e41f4b71Sopenharmony_ci } catch (error) { 1337e41f4b71Sopenharmony_ci console.error('auth onAcquireInfo error = ' + error); 1338e41f4b71Sopenharmony_ci } 1339e41f4b71Sopenharmony_ci } 1340e41f4b71Sopenharmony_ci}); 1341e41f4b71Sopenharmony_ci``` 1342e41f4b71Sopenharmony_ci 1343e41f4b71Sopenharmony_ci## AuthResult<sup>(deprecated)</sup> 1344e41f4b71Sopenharmony_ci 1345e41f4b71Sopenharmony_ci表示认证结果的对象。 1346e41f4b71Sopenharmony_ci 1347e41f4b71Sopenharmony_ci> **说明:** 1348e41f4b71Sopenharmony_ci> 从 API version 8 开始支持,从 API version 9 开始废弃,建议使用[AuthResultInfo](#authresultinfodeprecated)代替。 1349e41f4b71Sopenharmony_ci 1350e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.UserIAM.UserAuth.Core 1351e41f4b71Sopenharmony_ci 1352e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 1353e41f4b71Sopenharmony_ci| ------------ | ---------- | ---- | -------------------| 1354e41f4b71Sopenharmony_ci| token | Uint8Array | 否 | 认证通过的令牌信息。 | 1355e41f4b71Sopenharmony_ci| remainTimes | number | 否 | 剩余的认证操作次数。 | 1356e41f4b71Sopenharmony_ci| freezingTime | number | 否 | 认证操作的冻结时间。 | 1357e41f4b71Sopenharmony_ci 1358e41f4b71Sopenharmony_ci## ResultCode<sup>(deprecated)</sup> 1359e41f4b71Sopenharmony_ci 1360e41f4b71Sopenharmony_ci表示返回码的枚举。 1361e41f4b71Sopenharmony_ci 1362e41f4b71Sopenharmony_ci> **说明:** 1363e41f4b71Sopenharmony_ci> 从 API version 9 开始废弃,建议使用[UserAuthResultCode](#userauthresultcode9)代替。 1364e41f4b71Sopenharmony_ci 1365e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.UserIAM.UserAuth.Core 1366e41f4b71Sopenharmony_ci 1367e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 1368e41f4b71Sopenharmony_ci| ----------------------- | ------ | -------------------- | 1369e41f4b71Sopenharmony_ci| SUCCESS | 0 | 执行成功。 | 1370e41f4b71Sopenharmony_ci| FAIL | 1 | 认证失败。 | 1371e41f4b71Sopenharmony_ci| GENERAL_ERROR | 2 | 操作通用错误。 | 1372e41f4b71Sopenharmony_ci| CANCELED | 3 | 操作取消。 | 1373e41f4b71Sopenharmony_ci| TIMEOUT | 4 | 操作超时。 | 1374e41f4b71Sopenharmony_ci| TYPE_NOT_SUPPORT | 5 | 不支持的认证类型。 | 1375e41f4b71Sopenharmony_ci| TRUST_LEVEL_NOT_SUPPORT | 6 | 不支持的认证等级。 | 1376e41f4b71Sopenharmony_ci| BUSY | 7 | 忙碌状态。 | 1377e41f4b71Sopenharmony_ci| INVALID_PARAMETERS | 8 | 无效参数。 | 1378e41f4b71Sopenharmony_ci| LOCKED | 9 | 认证器已锁定。 | 1379e41f4b71Sopenharmony_ci| NOT_ENROLLED | 10 | 用户未录入认证信息。 | 1380e41f4b71Sopenharmony_ci 1381e41f4b71Sopenharmony_ci## FaceTips<sup>(deprecated)</sup> 1382e41f4b71Sopenharmony_ci 1383e41f4b71Sopenharmony_ci表示人脸认证过程中提示码的枚举。 1384e41f4b71Sopenharmony_ci 1385e41f4b71Sopenharmony_ci> **说明:** 1386e41f4b71Sopenharmony_ci> 从 API version 8 开始支持,从 API version 11 开始废弃。 1387e41f4b71Sopenharmony_ci 1388e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.UserIAM.UserAuth.Core 1389e41f4b71Sopenharmony_ci 1390e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 1391e41f4b71Sopenharmony_ci| ----------------------------- | ------ | ------------------------------------ | 1392e41f4b71Sopenharmony_ci| FACE_AUTH_TIP_TOO_BRIGHT | 1 | 光线太强,获取的图像太亮。 | 1393e41f4b71Sopenharmony_ci| FACE_AUTH_TIP_TOO_DARK | 2 | 光线太暗,获取的图像太暗。 | 1394e41f4b71Sopenharmony_ci| FACE_AUTH_TIP_TOO_CLOSE | 3 | 人脸距离设备过近。 | 1395e41f4b71Sopenharmony_ci| FACE_AUTH_TIP_TOO_FAR | 4 | 人脸距离设备过远。 | 1396e41f4b71Sopenharmony_ci| FACE_AUTH_TIP_TOO_HIGH | 5 | 设备太高,仅获取到人脸上部。 | 1397e41f4b71Sopenharmony_ci| FACE_AUTH_TIP_TOO_LOW | 6 | 设备太低,仅获取到人脸下部。 | 1398e41f4b71Sopenharmony_ci| FACE_AUTH_TIP_TOO_RIGHT | 7 | 设备太靠右,仅获取到人脸右部。 | 1399e41f4b71Sopenharmony_ci| FACE_AUTH_TIP_TOO_LEFT | 8 | 设备太靠左,仅获取到人脸左部。 | 1400e41f4b71Sopenharmony_ci| FACE_AUTH_TIP_TOO_MUCH_MOTION | 9 | 在图像采集过程中,用户人脸移动太快。 | 1401e41f4b71Sopenharmony_ci| FACE_AUTH_TIP_POOR_GAZE | 10 | 没有正视摄像头。 | 1402e41f4b71Sopenharmony_ci| FACE_AUTH_TIP_NOT_DETECTED | 11 | 没有检测到人脸信息。 | 1403e41f4b71Sopenharmony_ci 1404e41f4b71Sopenharmony_ci 1405e41f4b71Sopenharmony_ci## FingerprintTips<sup>(deprecated)</sup> 1406e41f4b71Sopenharmony_ci 1407e41f4b71Sopenharmony_ci表示指纹认证过程中提示码的枚举。 1408e41f4b71Sopenharmony_ci 1409e41f4b71Sopenharmony_ci> **说明:** 1410e41f4b71Sopenharmony_ci> 从 API version 8 开始支持,从 API version 11 开始废弃。 1411e41f4b71Sopenharmony_ci 1412e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.UserIAM.UserAuth.Core 1413e41f4b71Sopenharmony_ci 1414e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 1415e41f4b71Sopenharmony_ci| --------------------------------- | ------ | -------------------------------------------------- | 1416e41f4b71Sopenharmony_ci| FINGERPRINT_AUTH_TIP_GOOD | 0 | 获取的指纹图像良好。 | 1417e41f4b71Sopenharmony_ci| FINGERPRINT_AUTH_TIP_DIRTY | 1 | 由于传感器上可疑或检测到的污垢,指纹图像噪音过大。 | 1418e41f4b71Sopenharmony_ci| FINGERPRINT_AUTH_TIP_INSUFFICIENT | 2 | 由于检测到的情况,指纹图像噪声太大,无法处理。 | 1419e41f4b71Sopenharmony_ci| FINGERPRINT_AUTH_TIP_PARTIAL | 3 | 仅检测到部分指纹图像。 | 1420e41f4b71Sopenharmony_ci| FINGERPRINT_AUTH_TIP_TOO_FAST | 4 | 快速移动,指纹图像不完整。 | 1421e41f4b71Sopenharmony_ci| FINGERPRINT_AUTH_TIP_TOO_SLOW | 5 | 缺少运动,指纹图像无法读取。 | 1422e41f4b71Sopenharmony_ci 1423e41f4b71Sopenharmony_ci 1424e41f4b71Sopenharmony_ci## UserAuthType<sup>8+</sup> 1425e41f4b71Sopenharmony_ci 1426e41f4b71Sopenharmony_ci表示身份认证的凭据类型枚举。 1427e41f4b71Sopenharmony_ci 1428e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 1429e41f4b71Sopenharmony_ci 1430e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.UserIAM.UserAuth.Core 1431e41f4b71Sopenharmony_ci 1432e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 1433e41f4b71Sopenharmony_ci| ----------- | ---- | ---------- | 1434e41f4b71Sopenharmony_ci| PIN<sup>10+</sup> | 1 | 口令认证。 | 1435e41f4b71Sopenharmony_ci| FACE | 2 | 人脸认证。 | 1436e41f4b71Sopenharmony_ci| FINGERPRINT | 4 | 指纹认证。 | 1437e41f4b71Sopenharmony_ci 1438e41f4b71Sopenharmony_ci## AuthTrustLevel<sup>8+</sup> 1439e41f4b71Sopenharmony_ci 1440e41f4b71Sopenharmony_ci表示认证结果的信任等级枚举。 1441e41f4b71Sopenharmony_ci 1442e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 1443e41f4b71Sopenharmony_ci 1444e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.UserIAM.UserAuth.Core 1445e41f4b71Sopenharmony_ci 1446e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 1447e41f4b71Sopenharmony_ci| ---- | ----- | ------------------------------------------------------------ | 1448e41f4b71Sopenharmony_ci| ATL1 | 10000 | 认证结果的信任等级级别1,代表该认证方案能够识别用户个体,有一定的活体检测能力。常用的业务场景有业务风控、一般个人数据查询等。 | 1449e41f4b71Sopenharmony_ci| ATL2 | 20000 | 认证结果的信任等级级别2,代表该认证方案能够精确识别用户个体,有一定的活体检测能力。常用的业务场景有维持设备解锁状态,应用登录等。 | 1450e41f4b71Sopenharmony_ci| ATL3 | 30000 | 认证结果的信任等级级别3,代表该认证方案能够精确识别用户个体,有较强的活体检测能力。常用的业务场景有设备解锁等。 | 1451e41f4b71Sopenharmony_ci| ATL4 | 40000 | 认证结果的信任等级级别4,代表该认证方案能够高精度的识别用户个体,有很强的活体检测能力。常用的业务场景有小额支付等。 | 1452e41f4b71Sopenharmony_ci 1453e41f4b71Sopenharmony_ci## userAuth.getAuthenticator<sup>(deprecated)</sup> 1454e41f4b71Sopenharmony_ci 1455e41f4b71Sopenharmony_cigetAuthenticator(): Authenticator 1456e41f4b71Sopenharmony_ci 1457e41f4b71Sopenharmony_ci获取Authenticator对象,用于执行用户身份认证。 1458e41f4b71Sopenharmony_ci 1459e41f4b71Sopenharmony_ci> **说明:** 1460e41f4b71Sopenharmony_ci> 从 API version 8 开始废弃,建议使用[constructor](#constructordeprecated)替代。 1461e41f4b71Sopenharmony_ci 1462e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.UserIAM.UserAuth.Core 1463e41f4b71Sopenharmony_ci 1464e41f4b71Sopenharmony_ci**返回值:** 1465e41f4b71Sopenharmony_ci 1466e41f4b71Sopenharmony_ci| 类型 | 说明 | 1467e41f4b71Sopenharmony_ci| ----------------------------------------- | ------------ | 1468e41f4b71Sopenharmony_ci| [Authenticator](#authenticatordeprecated) | 认证器对象。 | 1469e41f4b71Sopenharmony_ci 1470e41f4b71Sopenharmony_ci**示例:** 1471e41f4b71Sopenharmony_ci ```ts 1472e41f4b71Sopenharmony_ci import { userAuth } from '@kit.UserAuthenticationKit'; 1473e41f4b71Sopenharmony_ci 1474e41f4b71Sopenharmony_ci let authenticator = userAuth.getAuthenticator(); 1475e41f4b71Sopenharmony_ci ``` 1476e41f4b71Sopenharmony_ci 1477e41f4b71Sopenharmony_ci## Authenticator<sup>(deprecated)</sup> 1478e41f4b71Sopenharmony_ci 1479e41f4b71Sopenharmony_ci认证器对象。 1480e41f4b71Sopenharmony_ci 1481e41f4b71Sopenharmony_ci> **说明:** 1482e41f4b71Sopenharmony_ci> 从 API version 8 开始废弃,建议使用[UserAuth](#userauthdeprecated)替代。 1483e41f4b71Sopenharmony_ci 1484e41f4b71Sopenharmony_ci### execute<sup>(deprecated)</sup> 1485e41f4b71Sopenharmony_ci 1486e41f4b71Sopenharmony_ciexecute(type: AuthType, level: SecureLevel, callback: AsyncCallback<number>): void 1487e41f4b71Sopenharmony_ci 1488e41f4b71Sopenharmony_ci执行用户认证,使用callback方式作为异步方法。 1489e41f4b71Sopenharmony_ci 1490e41f4b71Sopenharmony_ci> **说明:** 1491e41f4b71Sopenharmony_ci> 从 API version 8 开始废弃,建议使用[auth](#authdeprecated)替代。 1492e41f4b71Sopenharmony_ci 1493e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.ACCESS_BIOMETRIC 1494e41f4b71Sopenharmony_ci 1495e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.UserIAM.UserAuth.Core 1496e41f4b71Sopenharmony_ci 1497e41f4b71Sopenharmony_ci**参数:** 1498e41f4b71Sopenharmony_ci 1499e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1500e41f4b71Sopenharmony_ci| -------- | --------------------------- | ---- |-----------------------------------------------------------------------------------------------------------------------| 1501e41f4b71Sopenharmony_ci| type | AuthType | 是 | 认证类型,当前只支持"FACE_ONLY"。<br/>ALL为预留参数。当前版本暂不支持ALL类型的认证。 | 1502e41f4b71Sopenharmony_ci| level | SecureLevel | 是 | 安全级别,对应认证的安全级别,有效值为"S1"(最低)、"S2"、"S3"、"S4"(最高)。<br/>具备3D人脸识别能力的设备支持"S3"及以下安全级别的认证。<br/>具备2D人脸识别能力的设备支持"S2"及以下安全级别的认证。 | 1503e41f4b71Sopenharmony_ci| callback | AsyncCallback<number> | 是 | 回调函数。number表示认证结果,参见[AuthenticationResult](#authenticationresultdeprecated)。 | 1504e41f4b71Sopenharmony_ci 1505e41f4b71Sopenharmony_ci**示例:** 1506e41f4b71Sopenharmony_ci 1507e41f4b71Sopenharmony_ci```ts 1508e41f4b71Sopenharmony_ciimport { userAuth } from '@kit.UserAuthenticationKit'; 1509e41f4b71Sopenharmony_ci 1510e41f4b71Sopenharmony_cilet authenticator = userAuth.getAuthenticator(); 1511e41f4b71Sopenharmony_ciauthenticator.execute('FACE_ONLY', 'S2', (error, code)=>{ 1512e41f4b71Sopenharmony_ci if (code === userAuth.ResultCode.SUCCESS) { 1513e41f4b71Sopenharmony_ci console.info('auth success'); 1514e41f4b71Sopenharmony_ci return; 1515e41f4b71Sopenharmony_ci } 1516e41f4b71Sopenharmony_ci console.error('auth fail, code = ' + code); 1517e41f4b71Sopenharmony_ci}); 1518e41f4b71Sopenharmony_ci``` 1519e41f4b71Sopenharmony_ci 1520e41f4b71Sopenharmony_ci 1521e41f4b71Sopenharmony_ci### execute<sup>(deprecated)</sup> 1522e41f4b71Sopenharmony_ci 1523e41f4b71Sopenharmony_ciexecute(type : AuthType, level : SecureLevel): Promise<number> 1524e41f4b71Sopenharmony_ci 1525e41f4b71Sopenharmony_ci执行用户认证,使用promise方式作为异步方法。 1526e41f4b71Sopenharmony_ci 1527e41f4b71Sopenharmony_ci> **说明:** 1528e41f4b71Sopenharmony_ci> 从 API version 8 开始废弃,建议使用[auth](#authdeprecated)替代。 1529e41f4b71Sopenharmony_ci 1530e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.ACCESS_BIOMETRIC 1531e41f4b71Sopenharmony_ci 1532e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.UserIAM.UserAuth.Core 1533e41f4b71Sopenharmony_ci 1534e41f4b71Sopenharmony_ci**参数:** 1535e41f4b71Sopenharmony_ci 1536e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1537e41f4b71Sopenharmony_ci| ------ | ------ | ---- |-----------------------------------------------------------------------------------------------------------------------| 1538e41f4b71Sopenharmony_ci| type | AuthType | 是 | 认证类型,当前只支持"FACE_ONLY"。<br/>ALL为预留参数。当前版本暂不支持ALL类型的认证。 | 1539e41f4b71Sopenharmony_ci| level | SecureLevel | 是 | 安全级别,对应认证的安全级别,有效值为"S1"(最低)、"S2"、"S3"、"S4"(最高)。<br/>具备3D人脸识别能力的设备支持"S3"及以下安全级别的认证。<br/>具备2D人脸识别能力的设备支持"S2"及以下安全级别的认证。 | 1540e41f4b71Sopenharmony_ci 1541e41f4b71Sopenharmony_ci**返回值:** 1542e41f4b71Sopenharmony_ci 1543e41f4b71Sopenharmony_ci| 类型 | 说明 | 1544e41f4b71Sopenharmony_ci| --------------------- | ------------------------------------------------------------ | 1545e41f4b71Sopenharmony_ci| Promise<number> | 返回携带一个number的Promise。number 为认证结果,参见[AuthenticationResult](#authenticationresultdeprecated)。 | 1546e41f4b71Sopenharmony_ci 1547e41f4b71Sopenharmony_ci**示例:** 1548e41f4b71Sopenharmony_ci 1549e41f4b71Sopenharmony_ci```ts 1550e41f4b71Sopenharmony_ciimport { userAuth } from '@kit.UserAuthenticationKit'; 1551e41f4b71Sopenharmony_ci 1552e41f4b71Sopenharmony_citry { 1553e41f4b71Sopenharmony_ci let authenticator = userAuth.getAuthenticator(); 1554e41f4b71Sopenharmony_ci authenticator.execute('FACE_ONLY', 'S2').then((code)=>{ 1555e41f4b71Sopenharmony_ci console.info('auth success'); 1556e41f4b71Sopenharmony_ci }) 1557e41f4b71Sopenharmony_ci} catch (error) { 1558e41f4b71Sopenharmony_ci console.error('auth fail, code = ' + error); 1559e41f4b71Sopenharmony_ci} 1560e41f4b71Sopenharmony_ci``` 1561e41f4b71Sopenharmony_ci 1562e41f4b71Sopenharmony_ci## AuthenticationResult<sup>(deprecated)</sup> 1563e41f4b71Sopenharmony_ci 1564e41f4b71Sopenharmony_ci表示认证结果的枚举。 1565e41f4b71Sopenharmony_ci 1566e41f4b71Sopenharmony_ci> **说明:** 1567e41f4b71Sopenharmony_ci> 从 API version 8 开始废弃,建议使用[ResultCode](#resultcodedeprecated)替代。 1568e41f4b71Sopenharmony_ci 1569e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.UserIAM.UserAuth.Core 1570e41f4b71Sopenharmony_ci 1571e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 1572e41f4b71Sopenharmony_ci| ------------------ | ------ | -------------------------- | 1573e41f4b71Sopenharmony_ci| NO_SUPPORT | -1 | 设备不支持当前的认证方式。 | 1574e41f4b71Sopenharmony_ci| SUCCESS | 0 | 认证成功。 | 1575e41f4b71Sopenharmony_ci| COMPARE_FAILURE | 1 | 比对失败。 | 1576e41f4b71Sopenharmony_ci| CANCELED | 2 | 用户取消认证。 | 1577e41f4b71Sopenharmony_ci| TIMEOUT | 3 | 认证超时。 | 1578e41f4b71Sopenharmony_ci| CAMERA_FAIL | 4 | 开启相机失败。 | 1579e41f4b71Sopenharmony_ci| BUSY | 5 | 认证服务忙,请稍后重试。 | 1580e41f4b71Sopenharmony_ci| INVALID_PARAMETERS | 6 | 认证参数无效。 | 1581e41f4b71Sopenharmony_ci| LOCKED | 7 | 认证失败次数过多,已锁定。 | 1582e41f4b71Sopenharmony_ci| NOT_ENROLLED | 8 | 未录入认证凭据。 | 1583e41f4b71Sopenharmony_ci| GENERAL_ERROR | 100 | 其他错误。 | 1584e41f4b71Sopenharmony_ci 1585