js-apis-useriam-userauth.md 57.9 KB
Newer Older
Z
zengyawen 已提交
1
# @ohos.userIAM.userAuth (用户认证)
Z
zengyawen 已提交
2

3 4 5
提供用户认证能力,可应用于设备解锁、支付、应用登录等身份认证场景。

> **说明:**
Z
zengyawen 已提交
6 7 8 9 10
> 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。


## 导入模块

11
```js
Z
zengyawen 已提交
12 13 14
import userIAM_userAuth from '@ohos.userIAM.userAuth';
```

L
liuziwei 已提交
15 16
## WindowModeType<sup>10+</sup>

L
fix  
liuziweicom 已提交
17
用户认证界面的显示类型。
L
liuziwei 已提交
18 19 20

**系统能力**:SystemCapability.UserIAM.UserAuth.Core

L
liuziweicom 已提交
21
**系统接口**: 此接口为系统接口。
L
fix  
liuziweicom 已提交
22

L
liuziwei 已提交
23 24 25
| 名称       | 值   | 说明       |
| ---------- | ---- | ---------- |
| DIALOG_BOX | 1    | 弹框类型。 |
26
| FULLSCREEN | 2    | 全屏类型。 |
L
liuziwei 已提交
27 28 29 30 31 32 33

## AuthParam<sup>10+</sup>

用户认证相关参数。

**系统能力**:SystemCapability.UserIAM.UserAuth.Core

L
fix  
liuziweicom 已提交
34 35 36 37 38
| 名称           | 类型                               | 必填 | 说明                                                   |
| -------------- | ---------------------------------- | ---- | ------------------------------------------------------ |
| challenge      | Uint8Array                         | 是   | 挑战值,用来防重放攻击。最大长度为32字节,可以填null。 |
| authType       | [UserAuthType](#userauthtype8)[]   | 是   | 认证类型列表,用来指定用户认证界面提供的认证方法。     |
| authTrustLevel | [AuthTrustLevel](#authtrustlevel8) | 是   | 认证信任等级。                                         |
L
liuziwei 已提交
39 40 41

## WidgetParam<sup>10+</sup>

L
fix  
liuziweicom 已提交
42
用户认证界面配置相关参数。
L
liuziwei 已提交
43 44 45

**系统能力**:SystemCapability.UserIAM.UserAuth.Core

L
liuziweicom 已提交
46 47 48 49
| 名称                 | 类型                                | 必填 | 说明                                                         |
| -------------------- | ----------------------------------- | ---- | ------------------------------------------------------------ |
| title                | string                              | 是   | 用户认证界面的标题,最大长度为500字符。                      |
| navigationButtonText | string                              | 否   | 导航按键的说明文本,最大长度为60字符。                       |
L
liuziweicom 已提交
50
| windowMode           | [WindowModeType](#windowmodetype10) | 否   | 代表用户认证界面的显示类型,默认值为WindowModeType.DIALOG_BOX。<br>**系统接口**: 此接口为系统接口。 |
L
liuziwei 已提交
51

52
## UserAuthResult<sup>10+</sup>
L
liuziwei 已提交
53

L
fix  
liuziweicom 已提交
54
用户认证结果。当认证结果为成功时,返回认证类型和认证通过的令牌信息。
L
liuziwei 已提交
55 56 57

**系统能力**:SystemCapability.UserIAM.UserAuth.Core

58 59
| 名称     | 类型                           | 必填 | 说明                                                         |
| -------- | ------------------------------ | ---- | ------------------------------------------------------------ |
L
add  
liuziwei 已提交
60
| result   | number                         | 是   | 用户认证结果。若结果为成功返回0,若失败返回相应错误码,错误码详细介绍请参见[用户认证错误码](../errorcodes/errorcode-useriam.md)。 |
L
fix  
liuziweicom 已提交
61 62
| token    | Uint8Array                     | 否   | 当认证结果为成功时,返回认证通过的令牌信息。                 |
| authType | [UserAuthType](#userauthtype8) | 否   | 当认证结果为成功时,返回认证类型。                           |
63

L
liuziwei 已提交
64 65 66 67 68 69 70

## IAuthCallback<sup>10+</sup>

返回认证结果的回调对象。

### onResult<sup>10+</sup>

71
onResult(result: UserAuthResult): void
L
liuziwei 已提交
72 73 74 75 76 77 78

回调函数,返回认证结果。

**系统能力**:SystemCapability.UserIAM.UserAuth.Core

**参数:**

L
fix  
liuziweicom 已提交
79 80 81
| 参数名 | 类型                                | 必填 | 说明       |
| ------ | ----------------------------------- | ---- | ---------- |
| result | [UserAuthResult](#userauthresult10) | 是   | 认证结果。 |
L
liuziwei 已提交
82 83 84 85

**示例:**

```js
L
fix  
liuziweicom 已提交
86 87 88 89 90 91 92 93
import userAuth from '@ohos.userIAM.userAuth';

const authParam = {
    challenge: new Uint8Array([49, 49, 49, 49, 49, 49]),
    authType: [userAuth.UserAuthType.PIN],
    authTrustLevel: 10000,
};
const widgetParam = {
L
liuziweicom 已提交
94
	title: '请输入密码',
L
fix  
liuziweicom 已提交
95 96 97
	navigationButtonText: '返回',
    windowMode: userAuth.WindowModeType.DIALOG_BOX,
};
L
liuziwei 已提交
98
try {
L
liuziweicom 已提交
99
    let userAuthInstance = userAuth.getUserAuthInstance(authParam, widgetParam);
L
fix  
liuziweicom 已提交
100
    console.log('get userAuth instance success');
L
liuziwei 已提交
101
    userAuthInstance.on('result', {
L
liuziweicom 已提交
102 103 104
        onResult (result) {
            console.log('userAuthInstance callback result = ' + JSON.stringify(result));
        }
L
fix  
liuziweicom 已提交
105 106
    });
    console.log('auth on success');
L
liuziwei 已提交
107
} catch (error) {
L
fix  
liuziweicom 已提交
108
    console.log('auth catch error: ' + JSON.stringify(error));
L
liuziwei 已提交
109 110 111 112 113
}
```

## UserAuthInstance<sup>10+</sup>

114
用于执行用户身份认证,并支持使用统一用户身份认证组件。
L
fix  
liuziweicom 已提交
115
使用以下接口前,都需要先通过[getUserAuthInstance](#getuserauthinstance10)方法获取UserAuthInstance对象。
L
liuziwei 已提交
116 117 118

### on<sup>10+</sup>

119
on(type: 'result', callback: IAuthCallback): void
L
liuziwei 已提交
120 121 122 123 124 125 126

订阅用户身份认证结果。

**系统能力**:SystemCapability.UserIAM.UserAuth.Core

**参数:**

L
fix  
liuziweicom 已提交
127 128 129 130
| 参数名   | 类型                              | 必填 | 说明                                       |
| -------- | --------------------------------- | ---- | ------------------------------------------ |
| type     | 'result'                          | 是   | 订阅事件类型,表明该事件用来返回认证结果。 |
| callback | [IAuthCallback](#iauthcallback10) | 是   | 认证接口的回调函数,用于返回认证结果。     |
L
liuziwei 已提交
131 132 133

**错误码:**

134 135
以下错误码的详细介绍请参见[用户认证错误码](../errorcodes/errorcode-useriam.md)

L
liuziwei 已提交
136 137 138 139 140 141 142 143
| 错误码ID | 错误信息                 |
| -------- | ------------------------ |
| 401      | Incorrect parameters.    |
| 12500002 | General operation error. |

**示例:**

```js
L
fix  
liuziweicom 已提交
144 145 146 147 148 149 150 151
import userAuth from '@ohos.userIAM.userAuth';

const authParam = {
    challenge: new Uint8Array([49, 49, 49, 49, 49, 49]),
    authType: [userAuth.UserAuthType.PIN],
    authTrustLevel: 10000,
};
const widgetParam = {
L
liuziweicom 已提交
152
	title: '请输入密码',
L
fix  
liuziweicom 已提交
153 154 155
	navigationButtonText: '返回',
    windowMode: userAuth.WindowModeType.DIALOG_BOX,
};
L
liuziwei 已提交
156
try {
L
liuziweicom 已提交
157
    let userAuthInstance = userAuth.getUserAuthInstance(authParam, widgetParam);
L
fix  
liuziweicom 已提交
158
    console.log('get userAuth instance success');
L
liuziwei 已提交
159
    userAuthInstance.on('result', {
L
liuziweicom 已提交
160 161 162
        onResult (result) {
            console.log('userAuthInstance callback result = ' + JSON.stringify(result));
        }
L
fix  
liuziweicom 已提交
163 164
    });
    console.log('auth on success');
L
liuziwei 已提交
165
} catch (error) {
L
fix  
liuziweicom 已提交
166
    console.log('auth catch error: ' + JSON.stringify(error));
L
liuziwei 已提交
167 168 169 170 171
}
```

### off<sup>10+</sup>

172
off(type: 'result', callback?: IAuthCallback): void
L
liuziwei 已提交
173 174 175

取消订阅用户身份认证结果。

L
add  
liuziwei 已提交
176
> **说明**:需要使用已经成功订阅事件的[UserAuthInstance](#userauthinstance10)对象调用该接口进行取消订阅。
L
liuziwei 已提交
177 178 179 180 181

**系统能力**:SystemCapability.UserIAM.UserAuth.Core

**参数:**

L
fix  
liuziweicom 已提交
182 183 184 185
| 参数名   | 类型                              | 必填 | 说明                                       |
| -------- | --------------------------------- | ---- | ------------------------------------------ |
| type     | 'result'                          | 是   | 订阅事件类型,表明该事件用来返回认证结果。 |
| callback | [IAuthCallback](#iauthcallback10) | 否   | 认证接口的回调函数,用于返回认证结果。     |
L
liuziwei 已提交
186 187 188

**错误码:**

189 190
以下错误码的详细介绍请参见[用户认证错误码](../errorcodes/errorcode-useriam.md)

L
liuziwei 已提交
191 192 193 194 195 196 197 198
| 错误码ID | 错误信息                 |
| -------- | ------------------------ |
| 401      | Incorrect parameters.    |
| 12500002 | General operation error. |

**示例:**

```js
L
fix  
liuziweicom 已提交
199 200 201 202 203 204 205 206
import userAuth from '@ohos.userIAM.userAuth';

const authParam = {
    challenge: new Uint8Array([49, 49, 49, 49, 49, 49]),
    authType: [userAuth.UserAuthType.PIN],
    authTrustLevel: 10000,
};
const widgetParam = {
L
liuziweicom 已提交
207
	title: '请输入密码',
L
fix  
liuziweicom 已提交
208 209 210
	navigationButtonText: '返回',
    windowMode: userAuth.WindowModeType.DIALOG_BOX,
};
L
liuziwei 已提交
211
try {
L
liuziweicom 已提交
212
    let userAuthInstance = userAuth.getUserAuthInstance(authParam, widgetParam);
L
fix  
liuziweicom 已提交
213 214
    console.log('get userAuth instance success');
	userAuthInstance.off('result', {
L
liuziweicom 已提交
215
        onResult (result) {
L
fix  
liuziweicom 已提交
216
            console.log('auth off result: ' + JSON.stringify(result));
L
liuziwei 已提交
217
        }
L
fix  
liuziweicom 已提交
218 219
    });
    console.log('auth off success');
L
liuziwei 已提交
220
} catch (error) {
L
fix  
liuziweicom 已提交
221
    console.log('auth catch error: ' + JSON.stringify(error));
L
liuziwei 已提交
222 223 224 225 226
}
```

### start<sup>10+</sup>

227
start(): void
L
liuziwei 已提交
228 229 230 231 232 233 234 235 236

开始认证。

**需要权限**:ohos.permission.ACCESS_BIOMETRIC

**系统能力**:SystemCapability.UserIAM.UserAuth.Core

**错误码:**

237 238
以下错误码的详细介绍请参见[用户认证错误码](../errorcodes/errorcode-useriam.md)

L
liuziwei 已提交
239 240 241 242 243 244 245 246 247 248 249 250 251
| 错误码ID | 错误信息                                         |
| -------- | ------------------------------------------------ |
| 201      | Permission verification failed.                  |
| 401      | Incorrect parameters.                            |
| 12500001 | Authentication failed.                           |
| 12500002 | General operation error.                         |
| 12500003 | The operation is canceled.                       |
| 12500004 | The operation is time-out.                       |
| 12500005 | The authentication type is not supported.        |
| 12500006 | The authentication trust level is not supported. |
| 12500007 | The authentication task is busy.                 |
| 12500009 | The authenticator is locked.                     |
| 12500010 | The type of credential has not been enrolled.    |
252
| 12500011 | The authentication is canceled from widget's navigation button.      |
L
liuziwei 已提交
253 254 255 256

**示例:**

```js
L
fix  
liuziweicom 已提交
257 258 259 260 261 262 263 264
import userAuth from '@ohos.userIAM.userAuth';

const authParam = {
    challenge: new Uint8Array([49, 49, 49, 49, 49, 49]),
    authType: [userAuth.UserAuthType.PIN],
    authTrustLevel: 10000,
};
const widgetParam = {
L
liuziweicom 已提交
265
	title: '请输入密码',
L
fix  
liuziweicom 已提交
266 267 268
	navigationButtonText: '返回',
    windowMode: userAuth.WindowModeType.DIALOG_BOX,
};
L
liuziwei 已提交
269
try {
L
liuziweicom 已提交
270
    let userAuthInstance = userAuth.getUserAuthInstance(authParam, widgetParam);
L
fix  
liuziweicom 已提交
271
    console.log('get userAuth instance success');
L
liuziwei 已提交
272
    userAuthInstance.start();
L
fix  
liuziweicom 已提交
273
    console.log('auth start success');
L
liuziwei 已提交
274
} catch (error) {
L
fix  
liuziweicom 已提交
275
    console.log('auth catch error: ' + JSON.stringify(error));
L
liuziwei 已提交
276 277 278 279 280
}
```

### cancel<sup>10+</sup>

281
cancel(): void
L
liuziwei 已提交
282 283 284

取消认证。

285
> **说明**:此时UserAuthInstance需要是正在进行认证的对象。
L
liuziwei 已提交
286 287 288 289 290 291 292

**需要权限**:ohos.permission.ACCESS_BIOMETRIC

**系统能力**:SystemCapability.UserIAM.UserAuth.Core

**错误码:**

293 294 295 296 297
| 错误码ID | 错误信息                        |
| -------- | ------------------------------- |
| 201      | Permission verification failed. |
| 401      | Incorrect parameters.           |
| 12500002 | General operation error.        |
L
liuziwei 已提交
298 299 300 301

**示例:**

```js
L
fix  
liuziweicom 已提交
302 303 304
import userAuth from '@ohos.userIAM.userAuth';

const authParam = {
L
liuziweicom 已提交
305 306 307
    challenge: new Uint8Array([49, 49, 49, 49, 49, 49]),
    authType: [userAuth.UserAuthType.PIN],
    authTrustLevel: 10000,
L
fix  
liuziweicom 已提交
308 309
};
const widgetParam = {
L
liuziweicom 已提交
310
	title: '请输入密码',
L
fix  
liuziweicom 已提交
311 312 313
	navigationButtonText: '返回',
    windowMode: userAuth.WindowModeType.DIALOG_BOX,
};
L
liuziwei 已提交
314
try {
L
liuziweicom 已提交
315
    let userAuthInstance = userAuth.getUserAuthInstance(authParam, widgetParam);
L
fix  
liuziweicom 已提交
316
    console.log('get userAuth instance success');
L
liuziwei 已提交
317
    userAuthInstance.cancel();
L
liuziweicom 已提交
318
    console.log('auth cancel success');
L
liuziwei 已提交
319
} catch (error) {
L
fix  
liuziweicom 已提交
320
    console.log('auth catch error: ' + JSON.stringify(error));
L
liuziwei 已提交
321 322 323
}
```

L
fix  
liuziweicom 已提交
324
## getUserAuthInstance<sup>10+</sup>
L
liuziwei 已提交
325

326
getUserAuthInstance(authParam: AuthParam, widgetParam: WidgetParam): UserAuthInstance
L
liuziwei 已提交
327

328
获取[UserAuthInstance](#userauthinstance10)对象,用于执行用户身份认证,并支持使用统一用户身份认证组件。
L
liuziwei 已提交
329 330 331 332 333 334 335 336

> **说明:**
> 每个UserAuthInstance只能进行一次认证,若需要再次进行认证则需重新获取UserAuthInstance。

**系统能力**:SystemCapability.UserIAM.UserAuth.Core

**参数:**

L
fix  
liuziweicom 已提交
337 338 339 340
| 参数名      | 类型                          | 必填 | 说明                       |
| ----------- | ----------------------------- | ---- | -------------------------- |
| authParam   | [AuthParam](#authparam10)      | 是   | 用户认证相关参数。         |
| widgetParam | [WidgetParam](#widgetparam10) | 是   | 用户认证界面配置相关参数。 |
L
liuziwei 已提交
341 342 343

**返回值:**

L
fix  
liuziweicom 已提交
344 345 346
| 类型                                    | 说明                       |
| --------------------------------------- | -------------------------- |
| [UserAuthInstance](#userauthinstance10) | 支持用户界面的认证器对象。 |
L
liuziwei 已提交
347 348 349

**错误码:**

350 351
以下错误码的详细介绍请参见[用户认证错误码](../errorcodes/errorcode-useriam.md)

L
liuziwei 已提交
352 353 354 355 356 357 358 359 360 361
| 错误码ID | 错误信息                                         |
| -------- | ------------------------------------------------ |
| 401      | Incorrect parameters.                            |
| 12500002 | General operation error.                         |
| 12500005 | The authentication type is not supported.        |
| 12500006 | The authentication trust level is not supported. |

**示例:**

```js
L
fix  
liuziweicom 已提交
362 363 364
import userAuth from '@ohos.userIAM.userAuth';

const authParam = {
L
liuziweicom 已提交
365 366 367
    challenge: new Uint8Array([49, 49, 49, 49, 49, 49]),
    authType: [userAuth.UserAuthType.PIN],
    authTrustLevel: 10000,
L
fix  
liuziweicom 已提交
368 369
};
const widgetParam = {
L
liuziweicom 已提交
370
	title: '请输入密码',
L
fix  
liuziweicom 已提交
371 372 373
	navigationButtonText: '返回',
    windowMode: userAuth.WindowModeType.DIALOG_BOX,
};
L
liuziwei 已提交
374
try {
L
liuziweicom 已提交
375
    let userAuthInstance = userAuth.getUserAuthInstance(authParam, widgetParam);
L
fix  
liuziweicom 已提交
376
    console.log('get userAuth instance success');
L
liuziwei 已提交
377
} catch (error) {
L
fix  
liuziweicom 已提交
378
    console.log('auth catch error: ' + JSON.stringify(error));
L
liuziwei 已提交
379 380 381 382 383 384 385 386 387
}
```

## NoticeType<sup>10+</sup>

用户身份认证的通知类型。

**系统能力**:SystemCapability.UserIAM.UserAuth.Core

L
liuziweicom 已提交
388
**系统接口**: 此接口为系统接口。
L
fix  
liuziweicom 已提交
389

L
liuziwei 已提交
390 391
| 名称          | 值   | 说明                 |
| ------------- | ---- | -------------------- |
392
| WIDGET_NOTICE | 1    | 表示来自组件的通知。 |
L
liuziwei 已提交
393

L
fix  
liuziweicom 已提交
394
## sendNotice<sup>10+</sup>
L
liuziwei 已提交
395

396
sendNotice(noticeType: NoticeType, eventData: string): void
L
liuziwei 已提交
397

398
在使用统一身份认证组件进行用户身份认证时,用于接收来自统一身份认证组件的通知。
L
liuziwei 已提交
399 400 401 402 403

**需要权限**:ohos.permission.SUPPORT_USER_AUTH

**系统能力**:SystemCapability.UserIAM.UserAuth.Core

L
liuziweicom 已提交
404
**系统接口**: 此接口为系统接口。
L
fix  
liuziweicom 已提交
405

L
liuziwei 已提交
406 407
**参数:**

L
fix  
liuziweicom 已提交
408 409 410 411
| 参数名     | 类型                        | 必填 | 说明       |
| ---------- | --------------------------- | ---- | ---------- |
| noticeType | [NoticeType](#noticetype10) | 是   | 通知类型。 |
| eventData  | string                      | 是   | 事件数据。 |
L
liuziwei 已提交
412 413 414

**错误码:**

415 416
以下错误码的详细介绍请参见[用户认证错误码](../errorcodes/errorcode-useriam.md)

L
liuziwei 已提交
417 418 419 420 421 422 423 424 425 426
| 错误码ID | 错误信息                                |
| -------- | --------------------------------------- |
| 201      | Permission verification failed.         |
| 202      | The caller is not a system application. |
| 401      | Incorrect parameters.                   |
| 12500002 | General operation error.                |

**示例:**

```js
L
fix  
liuziweicom 已提交
427
import userAuth from '@ohos.userIAM.userAuth';
L
liuziwei 已提交
428

L
fix  
liuziweicom 已提交
429 430 431 432 433 434 435
try {
    const eventData = {
        widgetContextId: 123456,
        event: 'EVENT_AUTH_TYPE_READY',
        version: '1',
        payload: {
            type: ['pin']
L
liuziweicom 已提交
436 437
        },
    };
L
fix  
liuziweicom 已提交
438 439
    const jsonEventData = JSON.stringify(eventData);
    let noticeType = userAuth.NoticeType.WIDGET_NOTICE;
L
liuziweicom 已提交
440
    userAuth.sendNotice(noticeType, jsonEventData);
L
fix  
liuziweicom 已提交
441 442 443 444
    console.log('sendNotice success');
} catch (error) {
    console.log('sendNotice catch error: ' + JSON.stringify(error));
}
L
liuziwei 已提交
445 446 447 448
```

## UserAuthWidgetMgr<sup>10+</sup>

449
组件管理接口,可将用身份认证组件注册到UserAuthWidgetMgr中,由UserAuthWidgetMgr进行管理、调度。
L
liuziwei 已提交
450 451 452

### on<sup>10+</sup>

453
on(type: 'command', callback: IAuthWidgetCallback): void
L
liuziwei 已提交
454

455
身份认证组件订阅来自用户认证框架的命令。
L
liuziwei 已提交
456 457 458

**系统能力**:SystemCapability.UserIAM.UserAuth.Core

L
liuziweicom 已提交
459
**系统接口**: 此接口为系统接口。
L
fix  
liuziweicom 已提交
460

L
liuziwei 已提交
461 462 463 464
**参数:**

| 参数名   | 类型                                          | 必填 | 说明                                                         |
| -------- | --------------------------------------------- | ---- | ------------------------------------------------------------ |
465 466
| type     | 'command'                                     | 是   | 订阅事件类型,表明该事件用于用户认证框架向身份认证组件发送命令。 |
| callback | [IAuthWidgetCallback](#iauthwidgetcallback10) | 是   | 组件管理接口的回调函数,用于用户认证框架向身份认证组件发送命令。 |
L
liuziwei 已提交
467 468 469

**错误码:**

470 471
以下错误码的详细介绍请参见[用户认证错误码](../errorcodes/errorcode-useriam.md)

L
liuziwei 已提交
472 473 474 475 476 477 478 479
| 错误码ID | 错误信息                 |
| -------- | ------------------------ |
| 401      | Incorrect parameters.    |
| 12500002 | General operation error. |

**示例:**

```js
L
fix  
liuziweicom 已提交
480
import userAuth from '@ohos.userIAM.userAuth';
L
liuziwei 已提交
481

L
liuziweicom 已提交
482
const userAuthWidgetMgrVersion = 1;
L
liuziwei 已提交
483
try {
L
liuziweicom 已提交
484
    let userAuthWidgetMgr = userAuth.getUserAuthWidgetMgr(userAuthWidgetMgrVersion);
L
fix  
liuziweicom 已提交
485
    console.log('get userAuthWidgetMgr instance success');
L
liuziwei 已提交
486
    userAuthWidgetMgr.on('command', {
L
liuziweicom 已提交
487
    	sendCommand(cmdData) {
L
fix  
liuziweicom 已提交
488
            console.log('The cmdData is ' + cmdData);
L
liuziwei 已提交
489 490
        }
     })
L
fix  
liuziweicom 已提交
491
    console.log('subscribe authentication event success');
L
liuziwei 已提交
492
} catch (error) {
L
fix  
liuziweicom 已提交
493
    console.log('userAuth widgetMgr catch error: ' + JSON.stringify(error));
L
liuziwei 已提交
494 495 496 497 498
}
```

### off<sup>10+</sup>

499
off(type: 'command', callback?: IAuthWidgetCallback): void
L
liuziwei 已提交
500

501
身份认证组件取消订阅来自用户认证框架的命令。
L
liuziwei 已提交
502 503 504

**系统能力**:SystemCapability.UserIAM.UserAuth.Core

L
liuziweicom 已提交
505
**系统接口**: 此接口为系统接口。
L
fix  
liuziweicom 已提交
506

L
liuziwei 已提交
507 508 509 510
**参数:**

| 参数名   | 类型                                          | 必填 | 说明                                                         |
| -------- | --------------------------------------------- | ---- | ------------------------------------------------------------ |
511 512
| type     | 'command'                                     | 是   | 订阅事件类型,表明该事件用于用户认证框架向身份认证组件发送命令。 |
| callback | [IAuthWidgetCallback](#iauthwidgetcallback10) | 否   | 组件管理接口的回调函数,用于用户认证框架向身份认证组件发送命令。 |
L
liuziwei 已提交
513 514 515

**错误码:**

516 517
以下错误码的详细介绍请参见[用户认证错误码](../errorcodes/errorcode-useriam.md)

L
liuziwei 已提交
518 519 520 521 522 523 524 525
| 错误码ID | 错误信息                 |
| -------- | ------------------------ |
| 401      | Incorrect parameters.    |
| 12500002 | General operation error. |

**示例:**

```js
L
fix  
liuziweicom 已提交
526
import userAuth from '@ohos.userIAM.userAuth';
L
liuziwei 已提交
527

L
liuziweicom 已提交
528
const userAuthWidgetMgrVersion = 1;
L
liuziwei 已提交
529
try {
L
liuziweicom 已提交
530 531 532 533
    let userAuthWidgetMgr = userAuth.getUserAuthWidgetMgr(userAuthWidgetMgrVersion);
    console.log('get userAuthWidgetMgr instance success');
    userAuthWidgetMgr.off('command', {
    	sendCommand(cmdData) {
L
fix  
liuziweicom 已提交
534
            console.log('The cmdData is ' + cmdData);
L
liuziwei 已提交
535 536
        }
     })
L
fix  
liuziweicom 已提交
537
    console.log('cancel subscribe authentication event success');
L
liuziwei 已提交
538
} catch (error) {
L
fix  
liuziweicom 已提交
539
    console.log('userAuth widgetMgr catch error: ' + JSON.stringify(error));
L
liuziwei 已提交
540 541 542
}
```

L
fix  
liuziweicom 已提交
543
## getUserAuthWidgetMgr<sup>10+</sup>
L
liuziwei 已提交
544

545
getUserAuthWidgetMgr(version: number): UserAuthWidgetMgr
L
liuziwei 已提交
546 547 548 549 550 551

获取UserAuthWidgetMgr对象,用于执行用户身份认证。

> **说明:**
> 每个UserAuthInstance只能进行一次认证,若需要再次进行认证则需重新获取UserAuthInstance。

L
fix  
liuziweicom 已提交
552 553
**需要权限**:ohos.permission.SUPPORT_USER_AUTH

L
liuziwei 已提交
554 555
**系统能力**:SystemCapability.UserIAM.UserAuth.Core

L
liuziweicom 已提交
556
**系统接口**: 此接口为系统接口。
L
fix  
liuziweicom 已提交
557

L
liuziwei 已提交
558 559 560 561
**参数:**

| 参数名  | 类型   | 必填 | 说明                 |
| ------- | ------ | ---- | -------------------- |
562
| version | number | 是   | 表示认证组件的版本。 |
L
liuziwei 已提交
563 564 565 566 567 568 569 570 571

**返回值:**

| 类型                                      | 说明         |
| ----------------------------------------- | ------------ |
| [UserAuthWidgetMgr](#userauthwidgetmgr10) | 认证器对象。 |

**错误码:**

572 573
以下错误码的详细介绍请参见[用户认证错误码](../errorcodes/errorcode-useriam.md)

L
liuziwei 已提交
574 575 576 577 578 579 580 581 582 583
| 错误码ID | 错误信息                                |
| -------- | --------------------------------------- |
| 201      | Permission verification failed.         |
| 202      | The caller is not a system application. |
| 401      | Incorrect parameters.                   |
| 12500002 | General operation error.                |

**示例:**

```js
L
fix  
liuziweicom 已提交
584
import userAuth from '@ohos.userIAM.userAuth';
L
liuziwei 已提交
585

L
liuziweicom 已提交
586
let userAuthWidgetMgrVersion = 1;
L
liuziwei 已提交
587
try {
L
liuziweicom 已提交
588
    let userAuthWidgetMgr = userAuth.getUserAuthWidgetMgr(userAuthWidgetMgrVersion);
L
fix  
liuziweicom 已提交
589
    console.log('get userAuthWidgetMgr instance success');   
L
liuziwei 已提交
590
} catch (error) {
L
fix  
liuziweicom 已提交
591
    console.log('userAuth widgetMgr catch error: ' + JSON.stringify(error));
L
liuziwei 已提交
592 593 594 595 596
}
```

## IAuthWidgetCallback<sup>10+</sup>

597
认证组件通过该回调获取用户认证框架发送的命令。
L
liuziwei 已提交
598 599 600

### sendCommand<sup>10+</sup>

601
sendCommand(cmdData: string): void
L
liuziwei 已提交
602

603
回调函数,用于用户认证框架向组件发送命令。
L
liuziwei 已提交
604 605 606

**系统能力**:SystemCapability.UserIAM.UserAuth.Core

L
liuziweicom 已提交
607
**系统接口**: 此接口为系统接口。
L
fix  
liuziweicom 已提交
608

L
liuziwei 已提交
609 610 611 612
**参数:**

| 参数名  | 类型   | 必填 | 说明                               |
| ------- | ------ | ---- | ---------------------------------- |
613
| cmdData | string | 是   | 用户身份认证框架向组件发送的命令。 |
L
liuziwei 已提交
614 615 616 617

**示例:**

```js
L
fix  
liuziweicom 已提交
618
import userAuth from '@ohos.userIAM.userAuth';
L
liuziwei 已提交
619

L
liuziweicom 已提交
620
const userAuthWidgetMgrVersion = 1;
L
liuziwei 已提交
621
try {
L
liuziweicom 已提交
622
    let userAuthWidgetMgr = userAuth.getUserAuthWidgetMgr(userAuthWidgetMgrVersion);
L
fix  
liuziweicom 已提交
623
    console.log('get userAuthWidgetMgr instance success');
L
liuziwei 已提交
624
    userAuthWidgetMgr.on('command', {
L
liuziweicom 已提交
625
    	sendCommand(cmdData) {
L
fix  
liuziweicom 已提交
626
            console.log('The cmdData is ' + cmdData);
L
liuziwei 已提交
627 628
        }
     })
L
fix  
liuziweicom 已提交
629
    console.log('subscribe authentication event success');
L
liuziwei 已提交
630
} catch (error) {
L
fix  
liuziweicom 已提交
631
    console.log('userAuth widgetMgr catch error: ' + JSON.stringify(error));
L
liuziwei 已提交
632 633 634
}
```

Y
youliang_1314 已提交
635 636 637 638
## AuthResultInfo<sup>9+</sup>

表示认证结果信息。

639
**系统能力**:以下各项对应的系统能力均为SystemCapability.UserIAM.UserAuth.Core
Y
youliang_1314 已提交
640

Y
youliang_1314 已提交
641
| 名称         | 类型   | 必填 | 说明                 |
Y
youliang_1314 已提交
642 643 644
| ------------ | ---------- | ---- | -------------------- |
| result        | number | 是   | 认证结果。       |
| token        | Uint8Array | 否   | 用户身份认证通过的凭证。 |
J
JDfaker 已提交
645 646
| remainAttempts  | number     | 否   | 剩余的认证尝试次数。 |
| lockoutDuration | number     | 否   | 认证操作的锁定时长,时间单位为毫秒ms。 |
Y
youliang_1314 已提交
647 648 649 650 651 652 653

## TipInfo<sup>9+</sup>

表示认证过程中的提示信息。

**系统能力**:以下各项对应的系统能力均为SystemCapability.UserIAM.UserAuth.Core。

Y
youliang_1314 已提交
654
| 名称         | 类型   | 必填 | 说明                 |
Y
youliang_1314 已提交
655 656 657 658
| ------------ | ---------- | ---- | -------------------- |
| module        | number | 是   | 发送提示信息的模块标识。       |
| tip        | number | 是   | 认证过程提示信息。       |

Y
youliang_1314 已提交
659 660
## EventInfo<sup>9+</sup>

Y
youliang_1314 已提交
661
表示认证过程中事件信息的类型。
Y
youliang_1314 已提交
662

Y
youliang_1314 已提交
663
**系统能力**:以下各项对应的系统能力均为SystemCapability.UserIAM.UserAuth.Core。
Y
youliang_1314 已提交
664

Y
youliang_1314 已提交
665
| 取值类型    | 说明                       |
Y
youliang_1314 已提交
666
| --------- | ----------------------- |
667 668
| [AuthResultInfo](#authresultinfo9)    | 获取到的认证结果信息。  |
| [TipInfo](#tipinfo9)    | 认证过程中的提示信息。      |
Y
youliang_1314 已提交
669

Y
youliang_1314 已提交
670 671
## AuthEventKey<sup>9+</sup>

672
表示认证事件类型的关键字,作为[on](#ondeprecated)接口的的参数。
Y
youliang_1314 已提交
673

674
**系统能力**:以下各项对应的系统能力均为SystemCapability.UserIAM.UserAuth.Core。
Y
youliang_1314 已提交
675 676 677

| 取值类型       | 说明                    |
| ---------- | ----------------------- |
678 679
| "result" | [on](#ondeprecated)接口第一个参数为"result"时,[callback](#callback9)回调返回认证的结果信息。 |
| "tip"    | [on](#ondeprecated)接口第一个参数为"tip"时,[callback](#callback9)回调返回认证操作中的提示信息。 |
Y
youliang_1314 已提交
680

Y
youliang_1314 已提交
681 682
## AuthEvent<sup>9+</sup>

Y
youliang_1314 已提交
683
认证接口的异步回调对象。
Y
youliang_1314 已提交
684 685 686

### callback<sup>9+</sup>

Y
youliang_1314 已提交
687
callback(result : EventInfo) : void
Y
youliang_1314 已提交
688

Y
youliang_1314 已提交
689
通过该回调获取认证结果信息或认证过程中的提示信息。
Y
youliang_1314 已提交
690 691 692 693 694

**系统能力**:SystemCapability.UserIAM.UserAuth.Core

**参数:**

Y
youliang_1314 已提交
695
| 参数名    | 类型                       | 必填 | 说明                           |
696 697
| --------- | -------------------------- | ---- | ------------------------------ |
| result    | [EventInfo](#eventinfo9)     | 是   | 返回的认证结果信息或提示信息。  |
Y
youliang_1314 已提交
698 699 700

**示例:**

Y
youliang_1314 已提交
701 702 703 704 705 706 707 708 709 710
```js
import userIAM_userAuth from '@ohos.userIAM.userAuth';

let challenge = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8]);
let authType = userIAM_userAuth.UserAuthType.FACE;
let authTrustLevel = userIAM_userAuth.AuthTrustLevel.ATL1;
// 通过callback获取认证结果
try {
    let auth = userIAM_userAuth.getAuthInstance(challenge, authType, authTrustLevel);
    auth.on("result", {
Y
youliang_1314 已提交
711 712 713 714 715 716
        callback: (result: userIAM_userAuth.AuthResultInfo) => {
            console.log("authV9 result " + result.result);
            console.log("authV9 token " + result.token);
            console.log("authV9 remainAttempts " + result.remainAttempts);
            console.log("authV9 lockoutDuration " + result.lockoutDuration);
        }
Y
youliang_1314 已提交
717 718 719 720 721 722 723 724 725 726 727
    });
    auth.start();
    console.log("authV9 start success");
} catch (error) {
    console.log("authV9 error = " + error);
    // do error
}
// 通过callback获取认证过程中的提示信息
try {
    let auth = userIAM_userAuth.getAuthInstance(challenge, authType, authTrustLevel);
    auth.on("tip", {
728 729 730 731 732 733 734 735 736
        callback : (result : userIAM_userAuth.TipInfo) => {
            switch (result.tip) {
                case userIAM_userAuth.FaceTips.FACE_AUTH_TIP_TOO_BRIGHT:
                // do something;
                case userIAM_userAuth.FaceTips.FACE_AUTH_TIP_TOO_DARK:
                // do something;
                default:
                // do others
            }
Y
youliang_1314 已提交
737
        }
Y
youliang_1314 已提交
738 739 740 741 742 743 744 745
    });
    auth.start();
    console.log("authV9 start success");
} catch (error) {
    console.log("authV9 error = " + error);
    // do error
}
```
Y
youliang_1314 已提交
746

L
liuziwei 已提交
747
## AuthInstance<sup>(deprecated)</sup>
Y
youliang_1314 已提交
748 749 750

执行用户认证的对象。

L
liuziwei 已提交
751 752 753 754
> **说明:**
> 从 API version 9 开始支持,从 API version 10 开始废弃,请使用[UserAuthInstance](#userauthinstance10)替代。

### on<sup>(deprecated)</sup>
Y
youliang_1314 已提交
755

Y
youliang_1314 已提交
756
on : (name : AuthEventKey, callback : AuthEvent) => void
Y
youliang_1314 已提交
757

Y
youliang_1314 已提交
758
订阅指定类型的用户认证事件。
Y
youliang_1314 已提交
759

760
> **说明:**
L
liuziwei 已提交
761 762 763 764
> 从 API version 9 开始支持,从 API version 10 开始废弃。

> **说明:**
> 使用获取到的[AuthInstance](#authinstancedeprecated)对象调用该接口进行订阅。
Y
youliang_1314 已提交
765 766 767 768 769

**系统能力**:SystemCapability.UserIAM.UserAuth.Core

**参数:**

Y
youliang_1314 已提交
770
| 参数名    | 类型                        | 必填 | 说明                       |
Y
youliang_1314 已提交
771
| --------- | -------------------------- | ---- | ------------------------- |
Y
youliang_1314 已提交
772
| name  | [AuthEventKey](#autheventkey9) | 是   | 表示认证事件类型,取值为"result"时,回调函数返回认证结果;取值为"tip"时,回调函数返回认证过程中的提示信息。 |
Y
youliang_1314 已提交
773
| callback  | [AuthEvent](#authevent9)   | 是   | 认证接口的回调函数,用于返回认证结果或认证过程中的提示信息。 |
Y
youliang_1314 已提交
774 775 776

**错误码:**

777 778
以下错误码的详细介绍请参见[用户认证错误码](../errorcodes/errorcode-useriam.md)

Y
youliang_1314 已提交
779 780 781 782
| 错误码ID | 错误信息 |
| -------- | ------- |
| 401 | Incorrect parameters. |
| 12500002 | General operation error. |
Y
youliang_1314 已提交
783 784 785

**示例:**

Y
youliang_1314 已提交
786 787 788 789 790 791 792 793 794 795
```js
import userIAM_userAuth from '@ohos.userIAM.userAuth';

let challenge = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8]);
let authType = userIAM_userAuth.UserAuthType.FACE;
let authTrustLevel = userIAM_userAuth.AuthTrustLevel.ATL1;
try {
    let auth = userIAM_userAuth.getAuthInstance(challenge, authType, authTrustLevel);
    // 订阅认证结果
    auth.on("result", {
Y
youliang_1314 已提交
796 797 798 799 800 801
        callback: (result: userIAM_userAuth.AuthResultInfo) => {
            console.log("authV9 result " + result.result);
            console.log("authV9 token " + result.token);
            console.log("authV9 remainAttempts " + result.remainAttempts);
            console.log("authV9 lockoutDuration " + result.lockoutDuration);
        }
Y
youliang_1314 已提交
802 803 804
    });
    // 订阅认证过程中的提示信息
    auth.on("tip", {
Y
youliang_1314 已提交
805 806 807 808 809 810 811 812 813 814
        callback : (result : userIAM_userAuth.TipInfo) => {
            switch (result.tip) {
                case userIAM_userAuth.FaceTips.FACE_AUTH_TIP_TOO_BRIGHT:
                // do something;
                case userIAM_userAuth.FaceTips.FACE_AUTH_TIP_TOO_DARK:
                // do something;
                default:
                // do others
            }
        }
Y
youliang_1314 已提交
815 816 817 818 819 820 821 822
    });
    auth.start();
    console.log("authV9 start success");
} catch (error) {
    console.log("authV9 error = " + error);
    // do error
}
```
Y
youliang_1314 已提交
823

L
liuziwei 已提交
824
### off<sup>(deprecated)</sup>
Y
youliang_1314 已提交
825

Y
youliang_1314 已提交
826
off : (name : AuthEventKey) => void
Y
youliang_1314 已提交
827

Y
youliang_1314 已提交
828
取消订阅特定类型的认证事件。
Y
youliang_1314 已提交
829

L
liuziwei 已提交
830 831 832
>**说明:**
>从 API version 9 开始支持,从 API version 10 开始废弃。

833
> **说明:**
L
liuziwei 已提交
834
> 需要使用已经成功订阅事件的[AuthInstance](#authinstancedeprecated)对象调用该接口进行取消订阅。
Y
youliang_1314 已提交
835 836 837

**系统能力**:SystemCapability.UserIAM.UserAuth.Core

Y
youliang_1314 已提交
838
| 名称    | 类型                        | 必填 | 说明                       |
Y
youliang_1314 已提交
839
| --------- | -------------------------- | ---- | ------------------------- |
Y
youliang_1314 已提交
840 841 842 843
| name    | [AuthEventKey](#autheventkey9)      | 是   | 表示认证事件类型,取值为"result"时,取消订阅认证结果;取值为"tip"时,取消订阅认证过程中的提示信息。 |

**错误码:**

844 845
以下错误码的详细介绍请参见[用户认证错误码](../errorcodes/errorcode-useriam.md)

Y
youliang_1314 已提交
846 847 848 849
| 错误码ID | 错误信息 |
| -------- | ------- |
| 401 | Incorrect parameters. |
| 12500002 | General operation error. |
Y
youliang_1314 已提交
850 851 852

**示例:**

Y
youliang_1314 已提交
853 854
```js
import userIAM_userAuth from '@ohos.userIAM.userAuth';
Y
youliang_1314 已提交
855

Y
youliang_1314 已提交
856 857 858 859 860 861 862 863 864 865 866 867 868 869
let challenge = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8]);
let authType = userIAM_userAuth.UserAuthType.FACE;
let authTrustLevel = userIAM_userAuth.AuthTrustLevel.ATL1;
let auth;
try {
    auth = userIAM_userAuth.getAuthInstance(challenge, authType, authTrustLevel);
    console.log("get auth instance success");
} catch (error) {
    console.log("get auth instance failed" + error);
}

try {
    // 订阅认证结果
    auth.on("result", {
Y
youliang_1314 已提交
870 871 872 873 874 875
        callback: (result: userIAM_userAuth.AuthResultInfo) => {
            console.log("authV9 result " + result.result);
            console.log("authV9 token " + result.token);
            console.log("authV9 remainAttempts " + result.remainAttempts);
            console.log("authV9 lockoutDuration " + result.lockoutDuration);
        }
Y
youliang_1314 已提交
876 877 878 879 880 881 882 883 884 885 886 887 888
    });
    console.log("subscribe authentication event success");
} catch (error) {
    console.log("subscribe authentication event failed " + error);
}
// 取消订阅认证结果
try {
    auth.off("result");
    console.info("cancel subscribe authentication event success");
} catch (error) {
    console.info("cancel subscribe authentication event failed, error = " + error);
}
```
Y
youliang_1314 已提交
889

L
liuziwei 已提交
890
### start<sup>(deprecated)</sup>
Y
youliang_1314 已提交
891

Y
youliang_1314 已提交
892
start : () => void
Y
youliang_1314 已提交
893

Y
youliang_1314 已提交
894 895 896
开始认证。

> **说明:**
L
liuziwei 已提交
897 898 899 900
> 从 API version 9 开始支持,从 API version 10 开始废弃。

> **说明:**
> 使用获取到的[AuthInstance](#authinstancedeprecated)对象调用该接口进行认证。
Y
youliang_1314 已提交
901 902 903 904 905

**需要权限**:ohos.permission.ACCESS_BIOMETRIC

**系统能力**:SystemCapability.UserIAM.UserAuth.Core

Y
youliang_1314 已提交
906 907
**错误码:**

908 909
以下错误码的详细介绍请参见[用户认证错误码](../errorcodes/errorcode-useriam.md)

Y
youliang_1314 已提交
910 911 912 913
| 错误码ID | 错误信息 |
| -------- | ------- |
| 201 | Permission verification failed. |
| 401 | Incorrect parameters. |
Y
youliang_1314 已提交
914
| 12500001 | Authentication failed. |
Y
youliang_1314 已提交
915
| 12500002 | General operation error. |
Y
youliang_1314 已提交
916 917
| 12500003 | The operation is canceled. |
| 12500004 | The operation is time-out. |
Y
youliang_1314 已提交
918 919
| 12500005 | The authentication type is not supported. |
| 12500006 | The authentication trust level is not supported. |
Y
youliang_1314 已提交
920 921
| 12500007 | The authentication task is busy. |
| 12500009 | The authenticator is locked. |
Y
youliang_1314 已提交
922 923
| 12500010 | The type of credential has not been enrolled. |

Y
youliang_1314 已提交
924 925
**示例:**

Y
youliang_1314 已提交
926 927 928 929 930 931 932 933 934 935 936 937 938 939 940
```js
import userIAM_userAuth from '@ohos.userIAM.userAuth';

let challenge = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8]);
let authType = userIAM_userAuth.UserAuthType.FACE;
let authTrustLevel = userIAM_userAuth.AuthTrustLevel.ATL1;

try {
    let auth = userIAM_userAuth.getAuthInstance(challenge, authType, authTrustLevel);
    auth.start();
    console.info("authV9 start auth success");
} catch (error) {
    console.info("authV9 start auth failed, error = " + error);
}
```
Y
youliang_1314 已提交
941

L
liuziwei 已提交
942
### cancel<sup>(deprecated)</sup>
Y
youliang_1314 已提交
943

Y
youliang_1314 已提交
944
cancel : () => void
Y
youliang_1314 已提交
945

Y
youliang_1314 已提交
946 947 948
取消认证。

> **说明:**
L
liuziwei 已提交
949 950 951 952
> 从 API version 9 开始支持,从 API version 10 开始废弃。

> **说明:**
> 使用获取到的[AuthInstance](#authinstancedeprecated)对象调用该接口进行取消认证,此[AuthInstance](#authinstancedeprecated)需要是正在进行认证的对象。
Y
youliang_1314 已提交
953 954 955 956 957

**需要权限**:ohos.permission.ACCESS_BIOMETRIC

**系统能力**:SystemCapability.UserIAM.UserAuth.Core

Y
youliang_1314 已提交
958 959
**错误码:**

960 961
以下错误码的详细介绍请参见[用户认证错误码](../errorcodes/errorcode-useriam.md)

Y
youliang_1314 已提交
962 963 964 965 966 967
| 错误码ID | 错误信息 |
| -------- | ------- |
| 201 | Permission verification failed. |
| 401 | Incorrect parameters. |
| 12500002 | General operation error. |

Y
youliang_1314 已提交
968 969
**示例:**

Y
youliang_1314 已提交
970 971 972 973 974 975 976 977 978 979 980 981 982 983 984
```js
import userIAM_userAuth from '@ohos.userIAM.userAuth';

let challenge = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8]);
let authType = userIAM_userAuth.UserAuthType.FACE;
let authTrustLevel = userIAM_userAuth.AuthTrustLevel.ATL1;

try {
    let auth = userIAM_userAuth.getAuthInstance(challenge, authType, authTrustLevel);
    auth.cancel();
    console.info("cancel auth success");
} catch (error) {
    console.info("cancel auth failed, error = " + error);
}
```
Y
youliang_1314 已提交
985

L
liuziwei 已提交
986
## userIAM_userAuth.getAuthInstance<sup>(deprecated)</sup>
Y
youliang_1314 已提交
987 988 989 990 991

getAuthInstance(challenge : Uint8Array, authType : UserAuthType, authTrustLevel : AuthTrustLevel): AuthInstance

获取AuthInstance对象,用于执行用户身份认证。

L
liuziwei 已提交
992
> **说明:**
L
fix  
liuziweicom 已提交
993
> 从 API version 9 开始支持,从 API version 10 开始废弃,请使用[getUserAuthInstance](#getuserauthinstance10)替代。
L
liuziwei 已提交
994

Y
youliang_1314 已提交
995
> **说明:**
Y
youliang_1314 已提交
996
> 每个AuthInstance只能进行一次认证,若需要再次进行认证则需重新获取AuthInstance。
Y
youliang_1314 已提交
997 998 999 1000 1001

**系统能力**:SystemCapability.UserIAM.UserAuth.Core

**参数:**

Y
youliang_1314 已提交
1002
| 参数名         | 类型                                     | 必填 | 说明                     |
Y
youliang_1314 已提交
1003 1004 1005 1006 1007 1008 1009
| -------------- | ---------------------------------------- | ---- | ------------------------ |
| challenge      | Uint8Array                               | 是   | 挑战值,最大长度为32字节,可以填null。     |
| authType       | [UserAuthType](#userauthtype8)           | 是   | 认证类型,当前支持FACE。 |
| authTrustLevel | [AuthTrustLevel](#authtrustlevel8)       | 是   | 认证信任等级。               |

**返回值:**

L
liuziwei 已提交
1010 1011 1012
| 类型                                    | 说明         |
| --------------------------------------- | ------------ |
| [AuthInstance](#authinstancedeprecated) | 认证器对象。 |
Y
youliang_1314 已提交
1013

Y
youliang_1314 已提交
1014 1015
**错误码:**

1016 1017
以下错误码的详细介绍请参见[用户认证错误码](../errorcodes/errorcode-useriam.md)

Y
youliang_1314 已提交
1018 1019 1020 1021 1022 1023 1024
| 错误码ID | 错误信息 |
| -------- | ------- |
| 401 | Incorrect parameters. |
| 12500002 | General operation error. |
| 12500005 | The authentication type is not supported. |
| 12500006 | The authentication trust level is not supported. |

Y
youliang_1314 已提交
1025 1026
**示例:**

Y
youliang_1314 已提交
1027 1028
```js
import userIAM_userAuth from '@ohos.userIAM.userAuth';
Y
youliang_1314 已提交
1029

Y
youliang_1314 已提交
1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040
let challenge = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8]);
let authType = userIAM_userAuth.UserAuthType.FACE;
let authTrustLevel = userIAM_userAuth.AuthTrustLevel.ATL1;

try {
    let auth = userIAM_userAuth.getAuthInstance(challenge, authType, authTrustLevel);
    console.info("get auth instance success");
} catch (error) {
    console.info("get auth instance success failed, error = " + error);
}
```
Y
youliang_1314 已提交
1041 1042 1043 1044 1045

## userIAM_userAuth.getAvailableStatus<sup>9+</sup>

getAvailableStatus(authType : UserAuthType, authTrustLevel : AuthTrustLevel): void

Y
youliang_1314 已提交
1046
查询指定类型和等级的认证能力是否支持。
Y
youliang_1314 已提交
1047 1048 1049 1050 1051 1052 1053

**需要权限**:ohos.permission.ACCESS_BIOMETRIC

**系统能力**:SystemCapability.UserIAM.UserAuth.Core

**参数:**

Y
youliang_1314 已提交
1054
| 参数名         | 类型                               | 必填 | 说明                       |
Y
youliang_1314 已提交
1055
| -------------- | ---------------------------------- | ---- | -------------------------- |
L
liuziweicom 已提交
1056
| authType       | [UserAuthType](#userauthtype8)     | 是   | 认证类型。 |
Y
youliang_1314 已提交
1057 1058 1059 1060
| authTrustLevel | [AuthTrustLevel](#authtrustlevel8) | 是   | 认证信任等级。       |

**错误码:**

1061 1062
以下错误码的详细介绍请参见[用户认证错误码](../errorcodes/errorcode-useriam.md)

Y
youliang_1314 已提交
1063 1064 1065 1066 1067 1068 1069 1070
| 错误码ID | 错误信息 |
| -------- | ------- |
| 201 | Permission verification failed. |
| 401 | Incorrect parameters. |
| 12500002 | General operation error. |
| 12500005 | The authentication type is not supported. |
| 12500006 | The authentication trust level is not supported. |
| 12500010 | The type of credential has not been enrolled. |
Y
youliang_1314 已提交
1071 1072 1073

**示例:**

Y
youliang_1314 已提交
1074 1075
```js
import userIAM_userAuth from '@ohos.userIAM.userAuth';
Y
youliang_1314 已提交
1076

Y
youliang_1314 已提交
1077 1078 1079 1080 1081 1082 1083
try {
    userIAM_userAuth.getAvailableStatus(userIAM_userAuth.UserAuthType.FACE, userIAM_userAuth.AuthTrustLevel.ATL1);
    console.info("current auth trust level is supported");
} catch (error) {
    console.info("current auth trust level is not supported, error = " + error);
}
```
Y
youliang_1314 已提交
1084

1085
## UserAuthResultCode<sup>9+</sup>
Y
youliang_1314 已提交
1086

Y
youliang_1314 已提交
1087
表示返回码的枚举。
Y
youliang_1314 已提交
1088 1089 1090

**系统能力**:SystemCapability.UserIAM.UserAuth.Core

Y
youliang_1314 已提交
1091
| 名称                    |   值   | 说明                 |
Y
youliang_1314 已提交
1092 1093
| ----------------------- | ------ | -------------------- |
| SUCCESS                 | 12500000      | 执行成功。           |
Y
youliang_1314 已提交
1094
| FAIL                    | 12500001      | 认证失败。           |
Y
youliang_1314 已提交
1095 1096 1097 1098 1099 1100 1101 1102
| GENERAL_ERROR           | 12500002      | 操作通用错误。       |
| CANCELED                | 12500003      | 操作取消。           |
| TIMEOUT                 | 12500004      | 操作超时。           |
| TYPE_NOT_SUPPORT        | 12500005      | 不支持的认证类型。   |
| TRUST_LEVEL_NOT_SUPPORT | 12500006      | 不支持的认证等级。   |
| BUSY                    | 12500007      | 忙碌状态。           |
| LOCKED                  | 12500009      | 认证器已锁定。       |
| NOT_ENROLLED            | 12500010      | 用户未录入认证信息。 |
L
fix  
liuziweicom 已提交
1103
| CANCELED_FROM_WIDGET<sup>10+</sup> | 12500011 | 当前的认证操作被用户从组件取消。返回这个错误码,表示使用应用自定义认证。 |
1104

L
liuziwei 已提交
1105
## UserAuth<sup>(deprecated)</sup>
Z
zengyawen 已提交
1106

Y
youliang_1314 已提交
1107
认证器对象。
Z
zengyawen 已提交
1108

Y
youliang_1314 已提交
1109
### constructor<sup>(deprecated)</sup>
Z
zengyawen 已提交
1110

1111
constructor()
1112

Y
youliang_1314 已提交
1113 1114
创建认证器对象。

Y
youliang_1314 已提交
1115
> **说明:**
L
liuziwei 已提交
1116
> 从 API version 8 开始支持,从 API version 9 开始废弃,请使用[getAuthInstance](#useriam_userauthgetauthinstancedeprecated)替代。
Y
youliang_1314 已提交
1117

1118
**系统能力**:SystemCapability.UserIAM.UserAuth.Core
H
https://gitee.com/WALL_EYE 已提交
1119

1120
**返回值:**
1121

1122 1123
| 类型                   | 说明                 |
| ---------------------- | -------------------- |
L
liuziwei 已提交
1124
| [UserAuth](#userauthdeprecated) | 认证器对象。 |
Z
zengyawen 已提交
1125

1126
**示例:**
1127

Y
youliang_1314 已提交
1128 1129
```js
import userIAM_userAuth from '@ohos.userIAM.userAuth';
1130

Y
youliang_1314 已提交
1131 1132
let auth = new userIAM_userAuth.UserAuth();
```
Z
zengyawen 已提交
1133

Y
youliang_1314 已提交
1134
### getVersion<sup>(deprecated)</sup>
Z
zengyawen 已提交
1135

1136
getVersion() : number
Z
zengyawen 已提交
1137

Y
youliang_1314 已提交
1138 1139
获取认证器的版本信息。

Y
youliang_1314 已提交
1140
> **说明:**
1141
> 从 API version 8 开始支持,从 API version 9 开始废弃。
Y
youliang_1314 已提交
1142

H
https://gitee.com/WALL_EYE 已提交
1143 1144
**需要权限**:ohos.permission.ACCESS_BIOMETRIC

1145
**系统能力**:SystemCapability.UserIAM.UserAuth.Core
H
https://gitee.com/WALL_EYE 已提交
1146

1147
**返回值:**
1148

1149 1150
| 类型   | 说明                   |
| ------ | ---------------------- |
Y
youliang_1314 已提交
1151
| number | 认证器版本信息。 |
1152

1153
**示例:**
Z
zengyawen 已提交
1154

Y
youliang_1314 已提交
1155 1156
```js
import userIAM_userAuth from '@ohos.userIAM.userAuth';
1157

Y
youliang_1314 已提交
1158 1159 1160 1161
let auth = new userIAM_userAuth.UserAuth();
let version = auth.getVersion();
console.info("auth version = " + version);
```
1162

Y
youliang_1314 已提交
1163
### getAvailableStatus<sup>(deprecated)</sup>
1164

1165
getAvailableStatus(authType : UserAuthType, authTrustLevel : AuthTrustLevel) : number
1166

Y
youliang_1314 已提交
1167 1168
查询指定类型和等级的认证能力是否支持。

Y
youliang_1314 已提交
1169
> **说明:**
Z
zengyawen 已提交
1170
> 从 API version 8 开始支持,从 API version 9 开始废弃,请使用[getAvailableStatus](#useriam_userauthgetavailablestatus9)替代。
Y
youliang_1314 已提交
1171

H
https://gitee.com/WALL_EYE 已提交
1172 1173
**需要权限**:ohos.permission.ACCESS_BIOMETRIC

1174
**系统能力**:SystemCapability.UserIAM.UserAuth.Core
H
https://gitee.com/WALL_EYE 已提交
1175

1176
**参数:**
1177

Y
youliang_1314 已提交
1178
| 参数名         | 类型                               | 必填 | 说明                       |
1179 1180
| -------------- | ---------------------------------- | ---- | -------------------------- |
| authType       | [UserAuthType](#userauthtype8)     | 是   | 认证类型,当前只支持FACE。 |
Y
youliang_1314 已提交
1181
| authTrustLevel | [AuthTrustLevel](#authtrustlevel8) | 是   | 认证信任等级。       |
Z
zengyawen 已提交
1182

1183
**返回值:**
1184

1185 1186
| 类型   | 说明                                                         |
| ------ | ------------------------------------------------------------ |
Y
youliang_1314 已提交
1187
| number | 查询结果,结果为SUCCESS时表示支持,其他返回值参见[ResultCode](#resultcodedeprecated)。 |
Z
zengyawen 已提交
1188

1189
**示例:**
1190

Y
youliang_1314 已提交
1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201
```js
import userIAM_userAuth from '@ohos.userIAM.userAuth';

let auth = new userIAM_userAuth.UserAuth();
let checkCode = auth.getAvailableStatus(userIAM_userAuth.UserAuthType.FACE, userIAM_userAuth.AuthTrustLevel.ATL1);
if (checkCode == userIAM_userAuth.ResultCode.SUCCESS) {
    console.info("check auth support success");
} else {
    console.error("check auth support fail, code = " + checkCode);
}
```
Z
zengyawen 已提交
1202

Y
youliang_1314 已提交
1203
### auth<sup>(deprecated)</sup>
Z
zengyawen 已提交
1204

1205
auth(challenge: Uint8Array, authType: UserAuthType, authTrustLevel: AuthTrustLevel, callback: IUserAuthCallback): Uint8Array
Z
zengyawen 已提交
1206

Y
youliang_1314 已提交
1207 1208
执行用户认证,使用回调函数返回结果。

Y
youliang_1314 已提交
1209
> **说明:**
1210
> 从 API version 8 开始支持,从 API version 9 开始废弃,建议使用[start](#startdeprecated)代替。
Y
youliang_1314 已提交
1211

H
https://gitee.com/WALL_EYE 已提交
1212 1213
**需要权限**:ohos.permission.ACCESS_BIOMETRIC

1214
**系统能力**:SystemCapability.UserIAM.UserAuth.Core
H
https://gitee.com/WALL_EYE 已提交
1215

1216
**参数:**
1217

Y
youliang_1314 已提交
1218
| 参数名         | 类型                                     | 必填 | 说明                     |
1219 1220 1221
| -------------- | ---------------------------------------- | ---- | ------------------------ |
| challenge      | Uint8Array                               | 是   | 挑战值,可以填null。     |
| authType       | [UserAuthType](#userauthtype8)           | 是   | 认证类型,当前支持FACE。 |
1222 1223
| authTrustLevel | [AuthTrustLevel](#authtrustlevel8)       | 是   | 认证信任等级。             |
| callback       | [IUserAuthCallback](#iuserauthcallbackdeprecated) | 是   | 回调函数。        |
1224

1225
**返回值:**
1226

1227 1228
| 类型       | 说明                                                         |
| ---------- | ------------------------------------------------------------ |
Y
youliang_1314 已提交
1229
| Uint8Array | ContextId,作为取消认证[cancelAuth](#cancelauthdeprecated)接口的入参。 |
Z
zengyawen 已提交
1230

1231
**示例:**
Z
zengyawen 已提交
1232

Y
youliang_1314 已提交
1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252
```js
import userIAM_userAuth from '@ohos.userIAM.userAuth';

let auth = new userIAM_userAuth.UserAuth();
auth.auth(null, userIAM_userAuth.UserAuthType.FACE, userIAM_userAuth.AuthTrustLevel.ATL1, {
    onResult: (result, extraInfo) => {
        try {
            console.info("auth onResult result = " + result);
            console.info("auth onResult extraInfo = " + JSON.stringify(extraInfo));
            if (result == userIAM_userAuth.ResultCode.SUCCESS) {
                // 此处添加认证成功逻辑
            } else {
                // 此处添加认证失败逻辑
            }
        } catch (e) {
            console.info("auth onResult error = " + e);
        }
    }
});
```
Z
zengyawen 已提交
1253

Y
youliang_1314 已提交
1254
### cancelAuth<sup>(deprecated)</sup>
Z
zengyawen 已提交
1255

1256
cancelAuth(contextID : Uint8Array) : number
Z
zengyawen 已提交
1257

Y
youliang_1314 已提交
1258 1259
表示通过contextID取消本次认证操作。

Y
youliang_1314 已提交
1260
> **说明:**
1261
> 从 API version 8 开始支持,从 API version 9 开始废弃,建议使用[cancel](#canceldeprecated)代替。
Y
youliang_1314 已提交
1262

H
https://gitee.com/WALL_EYE 已提交
1263 1264
**需要权限**:ohos.permission.ACCESS_BIOMETRIC

1265
**系统能力**:SystemCapability.UserIAM.UserAuth.Core
H
https://gitee.com/WALL_EYE 已提交
1266

1267
**参数:**
1268

Y
youliang_1314 已提交
1269
| 参数名    | 类型       | 必填 | 说明                                       |
1270
| --------- | ---------- | ---- | ------------------------------------------ |
Y
youliang_1314 已提交
1271
| contextID | Uint8Array | 是   | 上下文的标识,通过[auth](#authdeprecated)接口获取。 |
1272

1273
**返回值:**
1274

1275 1276
| 类型   | 说明                     |
| ------ | ------------------------ |
Y
youliang_1314 已提交
1277
| number | 取消认证的结果,结果为SUCCESS时表示取消成功,其他返回值参见[ResultCode](#resultcodedeprecated)。 |
Z
zengyawen 已提交
1278

1279
**示例:**
1280

Y
youliang_1314 已提交
1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293
```js
import userIAM_userAuth from '@ohos.userIAM.userAuth';

// contextId可通过auth接口获取,此处直接定义
let contextId = new Uint8Array([0, 1, 2, 3, 4, 5, 6, 7]);
let auth = new userIAM_userAuth.UserAuth();
let cancelCode = auth.cancelAuth(contextId);
if (cancelCode == userIAM_userAuth.ResultCode.SUCCESS) {
    console.info("cancel auth success");
} else {
    console.error("cancel auth fail");
}
```
1294

Y
youliang_1314 已提交
1295 1296
## IUserAuthCallback<sup>(deprecated)</sup>

Y
youliang_1314 已提交
1297 1298
返回认证结果的回调对象。

Y
youliang_1314 已提交
1299
> **说明:**
Z
zengyawen 已提交
1300
> 从 API version 8 开始支持,从 API version 9 开始废弃,建议使用[AuthEvent](#authevent9)代替。
1301

Y
youliang_1314 已提交
1302
### onResult<sup>(deprecated)</sup>
1303

1304
onResult: (result : number, extraInfo : AuthResult) => void
1305

Y
youliang_1314 已提交
1306 1307
回调函数,返回认证结果。

Y
youliang_1314 已提交
1308
> **说明:**
Z
zengyawen 已提交
1309
> 从 API version 8 开始支持,从 API version 9 开始废弃,建议使用[callback](#callback9)代替。
Y
youliang_1314 已提交
1310

1311
**系统能力**:SystemCapability.UserIAM.UserAuth.Core
H
https://gitee.com/WALL_EYE 已提交
1312

1313
**参数:**
1314

Y
youliang_1314 已提交
1315
| 参数名    | 类型                       | 必填 | 说明        |
1316 1317
| --------- | -------------------------- | ---- | ------------------------------------------------ |
| result    | number           | 是   | 认证结果,参见[ResultCode](#resultcodedeprecated)。 |
Y
youliang_1314 已提交
1318
| extraInfo | [AuthResult](#authresultdeprecated) | 是   | 扩展信息,不同情况下的具体信息,<br/>如果身份验证通过,则在extraInfo中返回用户认证令牌,<br/>如果身份验证失败,则在extraInfo中返回剩余的用户认证次数,<br/>如果身份验证执行器被锁定,则在extraInfo中返回冻结时间。 |
1319

1320
**示例:**
1321

Y
youliang_1314 已提交
1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341
```js
import userIAM_userAuth from '@ohos.userIAM.userAuth';

let auth = new userIAM_userAuth.UserAuth();
auth.auth(null, userIAM_userAuth.UserAuthType.FACE, userIAM_userAuth.AuthTrustLevel.ATL1, {
    onResult: (result, extraInfo) => {
        try {
            console.info("auth onResult result = " + result);
            console.info("auth onResult extraInfo = " + JSON.stringify(extraInfo));
            if (result == userIAM_userAuth.ResultCode.SUCCESS) {
                // 此处添加认证成功逻辑
            }  else {
                // 此处添加认证失败逻辑
            }
        } catch (e) {
            console.info("auth onResult error = " + e);
        }
    }
});
```
Z
zengyawen 已提交
1342

Y
youliang_1314 已提交
1343
### onAcquireInfo<sup>(deprecated)</sup>
Z
zengyawen 已提交
1344

1345
onAcquireInfo ?: (module : number, acquire : number, extraInfo : any) => void
Z
zengyawen 已提交
1346

Y
youliang_1314 已提交
1347 1348
回调函数,返回认证过程中的提示信息,非必须实现。

Y
youliang_1314 已提交
1349
> **说明:**
Z
zengyawen 已提交
1350
> 从 API version 8 开始支持,从 API version 9 开始废弃,建议使用[callback](#callback9)代替。
Y
youliang_1314 已提交
1351

1352
**系统能力**:SystemCapability.UserIAM.UserAuth.Core
H
https://gitee.com/WALL_EYE 已提交
1353

1354
**参数:**
Z
zengyawen 已提交
1355

Y
youliang_1314 已提交
1356
| 参数名    | 类型   | 必填 | 说明                           |
1357
| --------- | ------ | ---- | ------------------------------ |
Y
youliang_1314 已提交
1358 1359
| module    | number | 是   | 发送提示信息的模块标识。             |
| acquire   | number | 是   | 认证执过程中的提示信息。 |
1360
| extraInfo | any    | 是   | 预留字段。                     |
Z
zengyawen 已提交
1361

1362
**示例:**
Z
zengyawen 已提交
1363

Y
youliang_1314 已提交
1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379
```js
import userIAM_userAuth from '@ohos.userIAM.userAuth';

let auth = new userIAM_userAuth.UserAuth();
auth.auth(null, userIAM_userAuth.UserAuthType.FACE, userIAM_userAuth.AuthTrustLevel.ATL1, {
    onAcquireInfo: (module, acquire, extraInfo) => {
        try {
            console.info("auth onAcquireInfo module = " + module);
            console.info("auth onAcquireInfo acquire = " + acquire);
            console.info("auth onAcquireInfo extraInfo = " + JSON.stringify(extraInfo));
        } catch (e) {
            console.info("auth onAcquireInfo error = " + e);
        }
    }
});
```
1380

Y
youliang_1314 已提交
1381 1382
## AuthResult<sup>(deprecated)</sup>

Y
youliang_1314 已提交
1383 1384
表示认证结果的对象。

Y
youliang_1314 已提交
1385
> **说明:**
Z
zengyawen 已提交
1386
> 从 API version 8 开始支持,从 API version 9 开始废弃,建议使用[AuthResultInfo](#authresultinfo9)代替。
Z
zengyawen 已提交
1387

1388
**系统能力**:SystemCapability.UserIAM.UserAuth.Core
H
https://gitee.com/WALL_EYE 已提交
1389

Y
youliang_1314 已提交
1390 1391 1392
| 名称         | 类型   | 必填 | 说明                 |
| ------------ | ---------- | ---- | -------------------|
| token        | Uint8Array | 否   | 认证通过的令牌信息。 |
1393 1394 1395
| remainTimes  | number     | 否   | 剩余的认证操作次数。 |
| freezingTime | number     | 否   | 认证操作的冻结时间。 |

Y
youliang_1314 已提交
1396 1397
## ResultCode<sup>(deprecated)</sup>

Y
youliang_1314 已提交
1398 1399
表示返回码的枚举。

Y
youliang_1314 已提交
1400
> **说明:**
1401
> 从 API version 9 开始废弃,建议使用[UserAuthResultCode](#userauthresultcode9)代替。
Z
zengyawen 已提交
1402

1403
**系统能力**:SystemCapability.UserIAM.UserAuth.Core
H
https://gitee.com/WALL_EYE 已提交
1404

Y
youliang_1314 已提交
1405
| 名称                    | 值 | 说明                 |
1406 1407
| ----------------------- | ------ | -------------------- |
| SUCCESS                 | 0      | 执行成功。           |
Y
youliang_1314 已提交
1408
| FAIL                    | 1      | 认证失败。           |
1409 1410 1411 1412 1413 1414
| GENERAL_ERROR           | 2      | 操作通用错误。       |
| CANCELED                | 3      | 操作取消。           |
| TIMEOUT                 | 4      | 操作超时。           |
| TYPE_NOT_SUPPORT        | 5      | 不支持的认证类型。   |
| TRUST_LEVEL_NOT_SUPPORT | 6      | 不支持的认证等级。   |
| BUSY                    | 7      | 忙碌状态。           |
Y
youliang_1314 已提交
1415
| INVALID_PARAMETERS      | 8      | 无效参数。           |
1416 1417
| LOCKED                  | 9      | 认证器已锁定。       |
| NOT_ENROLLED            | 10     | 用户未录入认证信息。 |
Z
zengyawen 已提交
1418

1419
## FaceTips<sup>8+</sup>
Z
zengyawen 已提交
1420

1421
表示人脸认证过程中提示码的枚举。
Z
zengyawen 已提交
1422

1423
**系统能力**:SystemCapability.UserIAM.UserAuth.Core
H
https://gitee.com/WALL_EYE 已提交
1424

Y
youliang_1314 已提交
1425
| 名称                          |   值   |    说明                             |
1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437
| ----------------------------- | ------ | ------------------------------------ |
| FACE_AUTH_TIP_TOO_BRIGHT      | 1      | 光线太强,获取的图像太亮。           |
| FACE_AUTH_TIP_TOO_DARK        | 2      | 光线太暗,获取的图像太暗。           |
| FACE_AUTH_TIP_TOO_CLOSE       | 3      | 人脸距离设备过近。                   |
| FACE_AUTH_TIP_TOO_FAR         | 4      | 人脸距离设备过远。                   |
| FACE_AUTH_TIP_TOO_HIGH        | 5      | 设备太高,仅获取到人脸上部。         |
| FACE_AUTH_TIP_TOO_LOW         | 6      | 设备太低,仅获取到人脸下部。         |
| FACE_AUTH_TIP_TOO_RIGHT       | 7      | 设备太靠右,仅获取到人脸右部。       |
| FACE_AUTH_TIP_TOO_LEFT        | 8      | 设备太靠左,仅获取到人脸左部。       |
| FACE_AUTH_TIP_TOO_MUCH_MOTION | 9      | 在图像采集过程中,用户人脸移动太快。 |
| FACE_AUTH_TIP_POOR_GAZE       | 10     | 没有正视摄像头。                     |
| FACE_AUTH_TIP_NOT_DETECTED    | 11     | 没有检测到人脸信息。                 |
Z
zengyawen 已提交
1438 1439


1440
## FingerprintTips<sup>8+</sup>
Z
zengyawen 已提交
1441

1442
表示指纹认证过程中提示码的枚举。
Z
zengyawen 已提交
1443

1444
**系统能力**:SystemCapability.UserIAM.UserAuth.Core
H
https://gitee.com/WALL_EYE 已提交
1445

Y
youliang_1314 已提交
1446
| 名称                              |   值   | 说明                                               |
1447 1448 1449 1450 1451 1452 1453
| --------------------------------- | ------ | -------------------------------------------------- |
| FINGERPRINT_AUTH_TIP_GOOD         | 0      | 获取的指纹图像良好。                               |
| FINGERPRINT_AUTH_TIP_DIRTY        | 1      | 由于传感器上可疑或检测到的污垢,指纹图像噪音过大。 |
| FINGERPRINT_AUTH_TIP_INSUFFICIENT | 2      | 由于检测到的情况,指纹图像噪声太大,无法处理。     |
| FINGERPRINT_AUTH_TIP_PARTIAL      | 3      | 仅检测到部分指纹图像。                             |
| FINGERPRINT_AUTH_TIP_TOO_FAST     | 4      | 快速移动,指纹图像不完整。                         |
| FINGERPRINT_AUTH_TIP_TOO_SLOW     | 5      | 缺少运动,指纹图像无法读取。                       |
Z
zengyawen 已提交
1454 1455


1456
## UserAuthType<sup>8+</sup>
Z
zengyawen 已提交
1457

1458
表示身份认证的凭据类型枚举。
Z
zengyawen 已提交
1459

1460
**系统能力**:SystemCapability.UserIAM.UserAuth.Core
H
https://gitee.com/WALL_EYE 已提交
1461

L
liuziwei 已提交
1462 1463
| 名称        | 值   | 说明       |
| ----------- | ---- | ---------- |
L
add  
liuziwei 已提交
1464
| PIN<sup>10+</sup>         | 1    | 口令认证。 |
L
liuziwei 已提交
1465 1466
| FACE        | 2    | 人脸认证。 |
| FINGERPRINT | 4    | 指纹认证。 |
1467

1468
## AuthTrustLevel<sup>8+</sup>
1469 1470 1471

表示认证结果的信任等级枚举。

1472
**系统能力**:SystemCapability.UserIAM.UserAuth.Core
H
https://gitee.com/WALL_EYE 已提交
1473

L
liuziweicom 已提交
1474 1475 1476 1477 1478 1479
| 名称 | 值    | 说明                                                         |
| ---- | ----- | ------------------------------------------------------------ |
| ATL1 | 10000 | 认证结果的信任等级级别1,代表该认证方案能够识别用户个体,有一定的活体检测能力。常用的业务场景有业务风控、一般个人数据查询等。 |
| ATL2 | 20000 | 认证结果的信任等级级别2,代表该认证方案能够精确识别用户个体,有一定的活体检测能力。常用的业务场景有维持设备解锁状态,应用登录等。 |
| ATL3 | 30000 | 认证结果的信任等级级别3,代表该认证方案能够精确识别用户个体,有较强的活体检测能力。常用的业务场景有设备解锁等。 |
| ATL4 | 40000 | 认证结果的信任等级级别4,代表该认证方案能够高精度的识别用户个体,有很强的活体检测能力。常用的业务场景有小额支付等。 |
1480 1481 1482 1483 1484

## userIAM_userAuth.getAuthenticator<sup>(deprecated)</sup>

getAuthenticator(): Authenticator

Y
youliang_1314 已提交
1485 1486
获取Authenticator对象,用于执行用户身份认证。

1487
> **说明:**
Y
youliang_1314 已提交
1488
> 从 API version 8 开始废弃,建议使用[constructor](#constructordeprecated)替代。
1489 1490 1491 1492

**系统能力**:SystemCapability.UserIAM.UserAuth.Core

**返回值:**
1493

1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506
| 类型                                      | 说明         |
| ----------------------------------------- | ------------ |
| [Authenticator](#authenticatordeprecated) | 认证器对象。 |

**示例:**
  ```js
  let authenticator = userIAM_userAuth.getAuthenticator();
  ```

## Authenticator<sup>(deprecated)</sup>

认证器对象。

Y
youliang_1314 已提交
1507
> **说明:**
L
liuziwei 已提交
1508
> 从 API version 8 开始废弃,建议使用[UserAuth](#userauthdeprecated)替代。
1509 1510 1511

### execute<sup>(deprecated)</sup>

Y
youliang_1314 已提交
1512
execute(type: AuthType, level: SecureLevel, callback: AsyncCallback&lt;number&gt;): void
1513

Y
youliang_1314 已提交
1514 1515
执行用户认证,使用callback方式作为异步方法。

1516
> **说明:**
Y
youliang_1314 已提交
1517
> 从 API version 8 开始废弃,建议使用[auth](#authdeprecated)替代。
1518 1519 1520 1521 1522 1523 1524

**需要权限**:ohos.permission.ACCESS_BIOMETRIC

**系统能力**:SystemCapability.UserIAM.UserAuth.Core

**参数:**

Y
youliang_1314 已提交
1525
| 参数名   | 类型                        | 必填 | 说明                      |
1526
| -------- | --------------------------- | ---- | -------------------------- |
Y
youliang_1314 已提交
1527
| type     | AuthType                      | 是   | 认证类型,当前只支持"FACE_ONLY"。<br/>ALL为预留参数,当前版本暂不支持ALL类型的认证。 |
1528
| level    | SecureLevel  | 是   | 安全级别,对应认证的安全级别,有效值为"S1"(最低)、"S2"、"S3"、"S4"(最高)。<br/>具备3D人脸识别能力的设备支持"S3"及以下安全级别的认证。<br/>具备2D人脸识别能力的设备支持"S2"及以下安全级别的认证。 |
Y
youliang_1314 已提交
1529
| callback | AsyncCallback&lt;number&gt; | 是   | 回调函数。    |
1530

1531
callback返回值:
1532 1533 1534 1535 1536 1537

| 类型   | 说明                                                         |
| ------ | ------------------------------------------------------------ |
| number | 表示认证结果,参见[AuthenticationResult](#authenticationresultdeprecated)。 |

**示例:**
Y
youliang_1314 已提交
1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548

```js
let authenticator = userIAM_userAuth.getAuthenticator();
authenticator.execute("FACE_ONLY", "S2", (error, code)=>{
    if (code === userIAM_userAuth.ResultCode.SUCCESS) {
        console.info("auth success");
        return;
    }
    console.error("auth fail, code = " + code);
});
```
1549 1550 1551 1552


### execute<sup>(deprecated)</sup>

Y
youliang_1314 已提交
1553 1554 1555
execute(type : AuthType, level : SecureLevel): Promise&lt;number&gt;

执行用户认证,使用promise方式作为异步方法。
1556 1557

> **说明:**
Y
youliang_1314 已提交
1558
> 从 API version 8 开始废弃,建议使用[auth](#authdeprecated)替代。
1559 1560 1561 1562 1563 1564

**需要权限**:ohos.permission.ACCESS_BIOMETRIC

**系统能力**:SystemCapability.UserIAM.UserAuth.Core

**参数:**
1565

Y
youliang_1314 已提交
1566
| 参数名 | 类型   | 必填 | 说明                                                         |
1567
| ------ | ------ | ---- | ------------------------------------------------------------ |
Y
youliang_1314 已提交
1568 1569
| type   | AuthType | 是   | 认证类型,当前只支持"FACE_ONLY"。<br/>ALL为预留参数,当前版本暂不支持ALL类型的认证。 |
| level  | SecureLevel | 是   | 安全级别,对应认证的安全级别,有效值为"S1"(最低)、"S2"、"S3"、"S4"(最高)。<br/>具备3D人脸识别能力的设备支持"S3"及以下安全级别的认证。<br/>具备2D人脸识别能力的设备支持"S2"及以下安全级别的认证。 |
1570 1571

**返回值:**
1572

1573 1574 1575 1576 1577 1578
| 类型                  | 说明                                                         |
| --------------------- | ------------------------------------------------------------ |
| Promise&lt;number&gt; | 返回携带一个number的Promise。number&nbsp;为认证结果,参见[AuthenticationResult](#authenticationresultdeprecated)。 |

**示例:**

Y
youliang_1314 已提交
1579 1580 1581 1582 1583 1584 1585 1586
```js
let authenticator = userIAM_userAuth.getAuthenticator();
authenticator.execute("FACE_ONLY", "S2").then((code)=>{
    console.info("auth success");
}).catch((error)=>{
    console.error("auth fail, code = " + error);
});
```
1587 1588 1589

## AuthenticationResult<sup>(deprecated)</sup>

Y
youliang_1314 已提交
1590 1591
表示认证结果的枚举。

1592
> **说明:**
Y
youliang_1314 已提交
1593
> 从 API version 8 开始废弃,建议使用[ResultCode](#resultcodedeprecated)替代。
1594 1595 1596

**系统能力**:SystemCapability.UserIAM.UserAuth.Core

Y
youliang_1314 已提交
1597
| 名称               |   值   | 说明                       |
1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608
| ------------------ | ------ | -------------------------- |
| NO_SUPPORT         | -1     | 设备不支持当前的认证方式。 |
| SUCCESS            | 0      | 认证成功。                 |
| COMPARE_FAILURE    | 1      | 比对失败。                 |
| CANCELED           | 2      | 用户取消认证。             |
| TIMEOUT            | 3      | 认证超时。                 |
| CAMERA_FAIL        | 4      | 开启相机失败。             |
| BUSY               | 5      | 认证服务忙,请稍后重试。   |
| INVALID_PARAMETERS | 6      | 认证参数无效。             |
| LOCKED             | 7      | 认证失败次数过多,已锁定。 |
| NOT_ENROLLED       | 8      | 未录入认证凭据。           |
Y
youliang_1314 已提交
1609
| GENERAL_ERROR      | 100    | 其他错误。                 |