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.Core590e41f4b71Sopenharmony_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.Core608e41f4b71Sopenharmony_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.Core626e41f4b71Sopenharmony_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&lt;number&gt;): 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&lt;number&gt; | 是 | 回调函数。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&lt;number&gt;
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&lt;number&gt; | 返回携带一个number的Promise。number&nbsp;为认证结果,参见[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